博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5漫谈(7)——如何保护HTML5应用代码
阅读量:7064 次
发布时间:2019-06-28

本文共 1413 字,大约阅读时间需要 4 分钟。

独家供稿:

HTML5应用采用的仍然是Javascript(JS)、HTML、CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此JS代码就成了保护重点。
然而,似乎Web语言的设计者们根本没考虑过保护代码,或许因为他们认为互联网的核心价值不是代码,而是业务数据、是流量,这样更有利于互联网Web服务的发展。
    但开发者似乎不这么认为。我和开发者交流BAE/Widget/HTML5等话题时,必不可少的问题就是如何保护代码。代码保护是许多Web开发者的一块心病。
Web语言是解析执行,即代码需要明文下载到客户端(如浏览器),同时可以很容易的进行调试,因而代码保护比较困难。
    当然,也有一些解决方案是将Web代码编译成二进制文件(如下图),但由于这方面没有业界规范,因而需要客户端支持该文件的解析,其通用性成问题。
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
 
    目前PhoneGap之类的混搭应用模式(native+html5)大行其道,给了这种代码保护方法很好的生存环境。即:可以将负责解析经过加密或编译的Web代码与解析模块一起打包成Native应用。
    当然,最流行、折中的HTML5代码保护办法仍代码混淆,而由于应用的主要功能一般通过JS实现,因而这里主要介绍JS代码的混淆。
    代码混淆简单地说是对代码进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,但难以阅读。一般代码混淆器会将代码中的所有变量、函数、类的名称变为简短的英文字母代号,删去代码注释。
    JS代码混淆器主要是主要分在线和离线两大类。一般开发者比较倾向离线代码混淆器(因为使用在线混淆器需要将代码提交到网站上),这里介绍几个比较不错的,供参考:
 
1.Jasob
网址:http://www.jasob.com/
功能强,能对Javascript、HTML、CSS文件进行混淆,可以选择变量的混淆程度等各种功能。当然也具有非常强的代码压缩能力。
但是,但是,是收费的共享软件,没用几天就过期了。。。
各位如果有免费使用的各种方法,别忘了和我分享。
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
 
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
2.Javascript Obfuscator
网址:http://www.javascript-source.com/javascript-obfuscator.html
支持JS混淆和代码压缩,简单好用。各种编码字符替换,混淆的代码更加晦涩。
但是、但是,也是收费的共享软件,而且不支持中文字符集,不知是否因为是试用版本。
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
3. YUI Compressor
网址:http://yuilibrary.com/projects/yuicompressor/
Yahoo出品的混淆压缩工具,据说jQuery就是用它混淆压缩的。免费、免费!
但是、但是,质量一般,还是用命令行的。 也有兄弟基于它做了可视化版本:
http://cloud.github.com/downloads/tinyms/jscompressor/JsCompressor.exe
程宝平:HTML5漫谈(7)——如何保护HTML5应用代码
    不过无论是代码混淆还是编译,都是防君子不防小人。因为,即使JAVA、C#等编译型语言,都可以反编译出非常易读的代码。
 
( 程宝平 chengbaoping
.com )
本博文发表在移动Labs的文链是:
【相关博文】
【精彩推荐】
 

转载于:https://www.cnblogs.com/webenh/p/7143907.html

你可能感兴趣的文章
.NET Project Open Day(2011.11.13)
查看>>
centos 记录用户行为轨迹
查看>>
各角色眼中的性能测试
查看>>
Citrix XenDesktop 引发的学案(四)-与“您的虚拟桌面”之间的连接失败,状态(1030)...
查看>>
mysql-5.6的GTID复制的实现
查看>>
6421B Lab10 网络文件和打印服务的配置与故障排除
查看>>
快速安装配置zabbix_agent端
查看>>
DNS服务的配置与管理(5) 配置转发器
查看>>
AIP(Azure 信息保护)之一:启用与激活服务
查看>>
一步步学WebSocket(3)WebSocket协议格式
查看>>
linux更新内核
查看>>
通过mdadm命令调用内核MD模块实现软Raid
查看>>
为RemoteApp的登录用户(域用户)添加输入法的方法
查看>>
分享Open-E DSS V7 应用系列十篇!
查看>>
分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
查看>>
javascript框架概览备忘
查看>>
产品与技术(人员)间的职责关系
查看>>
企业云桌面-13-为企业新建组织单位
查看>>
SystemCenter2012SP1实践(5)SCVMM管理HyperV
查看>>
Ext JS添加子组件的误区
查看>>