Heim  >  Artikel  >  Web-Frontend  >  关于HTML加密混淆、源码保护、代码安全,防止解压直接看源码_html/css_WEB-ITnose

关于HTML加密混淆、源码保护、代码安全,防止解压直接看源码_html/css_WEB-ITnose

ringa_lee
ringa_leeOriginal
2018-05-11 15:45:273413Durchsuche

一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题。

最近闲暇之余整理一篇文章分享给大家。

我们先理下需求,加密的目的是什么?加密到什么级别?为此我们可以牺牲什么?
我们知道这个世界不存在绝对的安全,加密会被破解、混淆会被反混淆。
技术小白、开发者、黑客,是完全不同的级别,防范不同级别的人策略都不一样。
防范力度越大,投入代价也越大,比如聘请专业的安全公司。
除了投入,我们还需要考虑程序的执行性能和用户体验。
加密的代码在运行时必须解密,混淆后尤其是混淆HTML后,程序的执行性能会下降。
是否真的有必要做这类的源码保护,还需要谨慎取舍。

一般而言,前端的代码,负责的是用户体验,后端的代码,负责更安全的数据处理。
前端不要涉及泄漏太多涉密信息,那么加密的意义不是特别大。
我很少在前端代码里看到值得保护的内容,比如高深的算法,很多代码是没必要牺牲用户体验来保护的。
但有些前端代码涉及最终用户的数据安全,此时还是要努力做数据保护的。

接下来具体分析几种手段。

    1. 不要在前端放敏感数据
      这个听起来是废话,但真的很重要。
      有些开发者在手机端明文存用户的密码,这是非常危险的事情。
      即使是原生开发,一旦手机被root,也会造成数据泄漏。更何况HTML5开发。
      比较好的做法是手机端存token,而不是密码,这里有篇文章专门介绍这块,涉及做登录的开发者推荐仔细看看设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)

    1. js、css压缩
      压缩不是加密,也不是混淆。但压缩后的js文件,往往也具有混淆的功能。
      js、css压缩是很常见的技术,我们经常看到各种框架的文件名是xxx.min.js,xxx.min.css。
      使用合适的js、css压缩方案,可以减少文件体积、提高载入速度,最重要的是,它还能加快程序的执行性能。简直是有百利而无一害。
      混淆js比较常用的工具是yahoo的YUI混淆,在HBuilder里点菜单工具-插件安装,里面有YUI compress,可以压缩js和css。
      如果js、css比较大,发布前压缩下是比较推荐的做法。

    1. HTML、js、css混淆
      压缩虽然也能混淆,但不是以让别人看不懂为目的,混淆是真正以别人看不懂为目的。
      但是这样的混淆就不像压缩那么有百利而无一害了,它会降低程序执行性能。
      一些开发者不希望发行包解压后可以直接看到源码,那么此时可以使用混淆方案。
      网上搜索HTML混淆,资料和工具都非常多。
      原理都是类似的,js代码变成乱七八糟的字符串,然后用eval执行,HTML代码变乱七八糟字符串,用document.write或innerHTML执行,css也可以动态的在document.write里写

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn