关于HTML、js加密、混淆、源码保护、代码安全,防⽌解压直
接看源码
⼀直有⼈问HTML加密混淆怎么做,其实这在业内是早已很多⼈研究过的课题。
假⽇期间整理⼀篇⽂章分享给⼤家。
我们先理下需求,加密的⽬的是什么?加密到什么级别?为此我们可以牺牲什么?
我们知道这个世界不存在绝对的安全,加密会被破解、混淆会被反混淆。
技术⼩⽩、开发者、⿊客,是完全不同的级别,防范不同级别的⼈策略都不⼀样。
防范⼒度越⼤,投⼊代价也越⼤,⽐如聘请专业的安全公司。
除了投⼊,我们还需要考虑程序的执⾏性能和⽤户体验。
加密的代码在运⾏时必须解密,混淆后尤其是混淆HTML后,程序的执⾏性能会下降。
是否真的有必要做这类的源码保护,还需要谨慎取舍。
⼀般⽽⾔,前端的代码,负责的是⽤户体验,后端的代码,负责更安全的数据处理。
前端不要涉及泄漏太多涉密信息,那么加密的意义不是特别⼤。
我很少在前端代码⾥看到值得保护的内容,⽐如⾼深的算法,很多代码是没必要牺牲⽤户体验来保护的。
但有些前端代码涉及最终⽤户的数据安全,此时还是要努⼒做数据保护的。
接下来具体分析⼏种⼿段。
1. 不要在前端放敏感数据
这个听起来是废话,但真的很重要。
有些开发者在⼿机端明⽂存⽤户的密码,这是⾮常危险的事情。
即使是原⽣开发,⼀旦⼿机被root,也会造成数据泄漏。更何况HTML5开发。
⽐较好的做法是⼿机端存token,⽽不是密码,这⾥有篇⽂章专门介绍这块,涉及做登录的开发者推荐仔细看看
2. js、css压缩
压缩不是加密,也不是混淆。但压缩后的js⽂件,往往也具有混淆的功能。
js、css压缩是很常见的技术,我们经常看到各种框架的⽂件名是xxx.min.js,xxx.min.css。
使⽤合适的js、css压缩⽅案,可以减少⽂件体积、提⾼载⼊速度,最重要的是,它还能加快程序的执⾏性能。简直是有百利⽽⽆⼀害。
压缩js⽐较常⽤的⼯具是yahoo的YUI混淆,在HBuilder⾥点菜单⼯具-插件安装,⾥⾯有YUI compress,可以压缩js和css。
如果js、css⽐较⼤,发布前压缩下是⽐较推荐的做法。
3.
4. 防⽌webkit remote debug,即防⽌浏览器控制台调试
Android4.4及以上和iOS是⽀持webkit remote debug的,在HBuilder的教程⾥也有如何使⽤chrome调试Android应⽤,和使⽤
js代码加密软件
safari调试iOS应⽤的教程。
在HBuilder开发的App⾥,manifest.json⾥下的plus-distribute下有⼀个debug标签,标记为false后打包(可视化界⾯⾥也有配
置),这样的包运⾏在⼿机上时webview会阻⽌浏览器的远程调试请求。
如果你想调试,那么把debug改为true后再打包。
当然有些Android rom不是很规范,并不能阻⽌调试,这属于rom的bug。
另外注意只有打包才能防调试,真机运⾏是不能阻⽌调试的。
5.
6.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论