网页抓取 加密html(先理下需求,加密的目的是什么?加密到什么级别?)
优采云 发布时间: 2021-09-26 23:12网页抓取 加密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。
当然,有些Android rom 不是很规范,无法阻止调试。这是一个ROM错误。
专业的加密加固服务
由于Android的特殊性,出现了对apk的加固和脱壳行业,这也是业内常见的apk保护方案。
很多应用市场都提供加固服务,比如360手机助手的加固,
还有专业的公司如:爱加密,有免费的基础安全服务,也有收费的高级安全服务。
后记,一些非专业安全公司提供的所谓源代码加密服务,其实漏洞百出。
安全无小事,使用专业的安全服务产品更可靠。