网页抓取 加密html(先理下需求,加密的目的是什么?加密到什么级别?)
优采云 发布时间: 2022-03-16 10:02网页抓取 加密html(先理下需求,加密的目的是什么?加密到什么级别?)
人们一直在问如何进行 HTML 加密和混淆。其实这是很多业内人士研究过的话题。
闲暇之余,整理了一篇文章文章与大家分享。
我们先来看看需求。加密的目的是什么?什么级别的加密?我们可以为此牺牲什么?
我们知道,这个世界上没有绝对的安全,加密会被破解,混淆会被反混淆。
技术新手、开发者、黑客是完全不同的层次,不同层次的人防范的策略也不同。
预防越大,投资成本就越大,比如聘请专业的保安公司。
除了投资,我们还需要考虑程序执行性能和用户体验。
加密的代码必须在运行时解密。混淆后,尤其是HTML混淆后,程序的执行性能会下降。
是否真的需要做这种源代码保护,需要慎重选择。
一般来说,前端代码负责用户体验,后端代码负责更安全的数据处理。
前端不应该涉及泄露太多机密信息,所以加密的意义不是特别大。
我很少在前端代码中看到值得保护的内容,比如高级算法,不需要牺牲用户体验来保护大量代码。
但是,一些前端代码涉及到最终用户的数据安全,此时应该努力保护数据。
接下来详细分析几种方法。
不要把敏感数据放在前端
这可能听起来像废话,但它真的很重要。
一些开发者将用户的密码明文存储在手机上,这是非常危险的。
一旦手机root,即使是原生开发也可能导致数据泄露。更不用说 HTML5 开发了。
更好的方法是在手机上存储令牌而不是密码。这里有一篇文章 文章 来介绍这一点。建议涉及登录的开发者仔细了解基于HTML5的APP登录功能的设计以及安全调用接口的方式(原理)
js、css压缩
压缩不是加密,也不是混淆。但是压缩后的js文件往往也有混淆的功能。
JS 和 CSS 压缩是很常见的技术。我们经常看到各种框架的文件名是 xxx.min.js 和 xxx.min.css。
使用合适的js和css压缩方案可以减小文件大小,提高加载速度,最重要的是还可以加快程序的执行性能。它只是有益的和无害的。
比较常用的混淆js的工具是yahoo的YUI混淆。在HBuilder中,点击菜单工具-插件安装,里面有YUI compress,可以压缩js和css。
如果 js 和 css 比较大,建议先压缩再发布。
HTML、js、css混淆
虽然压缩也可以混淆,但不是为了让别人看不懂。混淆真的是为了让人无法理解。
但这种混淆不如压缩有益无害,它会降低程序的执行性能。
有些开发者不想在解压分发包后直接看到源代码,所以此时可以使用混淆方案。
网上搜索HTML混淆,有很多资料和工具。
原理类似。js代码变成乱七八糟的字符串,然后用eval执行。HTML 代码变成了乱七八糟的字符串,并使用 document.write 或 innerHTML 执行它。CSS 也可以在 document.write 中动态编写。
这些工具是免费的和商业的,它们越商业化,就越难被去混淆。
这是一个免费的在线混淆工具
这是一个比较知名的商业工具。
其实你也可以根据原理编写自己的混淆算法。
混淆也是多年的成熟技术。例如,谷歌在保护gmail的前端代码时,也受到了混淆的保护。
无论是压缩还是混淆,使用 grunt 进行发布都是一种不错的方式。开发后一键调用grunt非常方便。
防止webkit远程调试,即防止浏览器控制台调试
Android4.4 及以上和iOS 支持webkit 远程调试。在HBuilder教程中,也有关于如何使用chrome调试Android应用和safari调试iOS应用的教程。
在HBuilder开发的app中,manifest.json的plus-distribute下有一个debug标签,标记为false,然后打包。当这样的包在手机上运行时,webview会阻塞浏览器的远程调试请求。
如果要调试,则在打包之前将 debug 更改为 true。
当然,有些安卓的rom不是很规范,也不能妨碍调试。这是一个ROM错误。
专业的加密加固打包服务
由于Android的特殊性,存在针对apk的加固脱壳行业,这也是业内常见的apk保护方案。
很多应用市场都提供加固服务,比如360手机助手的加固,
还有像爱加密这样的专业公司,有免费的基础安全服务和收费的高级安全服务。
后记,一些非专业安全公司提供的所谓源代码加密服务,其实漏洞百出。
安全无小事,使用专业的安全服务产品更可靠。