最近,使用HTML5技术开发APP着实火了,各大应用市场上基于HTML5开发的跨平台应用也越来越多。然而巨大的机会背后隐藏着危机,那就是代码盗取的问题。在索“HTML代码”关键词,1秒之内出现了1千4百多万个结果,由此可见代码安全问题受到开发者的强烈关注。
通常使用HTML5开发的App,网页代码都是保存在App安装包中的(即ipa和apk包),而这些网页代码通常都是没有经过加密处理的。而安装包(即ipa和apk包)就是标准的zip压缩包,任何人下载安装包后直接解压ipa和apk文件,就可以找到其中的网页文件,直接查看源码。
如何防止网页代码不被抄袭?如何Web开发者的知识产权及版权?如何使网页代码加密成为了开发者头疼不已的问题。
常见的网页代码解决方式原理是将代码压缩和混淆,但这种方式治标不治本,无法从根本上实现代码加密。
压缩不是加密,也不是混淆。但压缩后的JS文件,往往也具有混淆的功能。使用合适的JS、CSS压缩方案,可以减少文件体积、提高载入速度,最重要的是,它还能加快程序的执行性能。问题就是压缩并不是加密,有多种还原的方式。
这是最通常使用的方法,有很多代码混淆工具,如Packer、JavascriptCompressor、JSObfuscator等,帮助开发者代码,然而代码混淆后会降低程序的执行性能。同时也不乏一些代码格式化工具的存在,如JSBeauty、VS的Javascript编辑器等,用工具将混淆的代码重新格式化后,代码全部恢复为,无法做到代码版权。
仅对App中的HTML文件进行加解密处理是比较容易实现的,HTML文件可以经过加密后保存在App安装包中,而应用引擎在将HTML文件交给浏览器引擎解析之前可以先对加密的HTML文件进行解密,然后再将解密好的HTML文件交给浏览器解释执行,而在整个浏览器执行过程中,对JavaScript和CSS文件的解密处理时机还是比较难控制的。但是在一个实际App项目中,大量的功能实现都是放在JavaScript文件中的,所以,这种局部加密的方式还是存在较大的局限性。
由于Android应用使用Java语言开发,Java语言存在可以反编译源码的问题,所以行业中针对apk出现了加固、加壳产业,很多厂商可以提供加固服务,比如360、梆梆安全等加固产品。然而应用加固通常只能对原生代码进行加密加固,不能对HTML、JavaScript、CSS等网页代码进行加密。
作为HTML5业界的一员,APICloud自成立之初一直关注开发者的代码问题,在公司成立几个月后,APICloud基于RC4加密算法提出了一套“全包”对称加密解决方案,可以在云编译的时候对安装包中的HTML、CSS、JS代码进行加密处理,从HTML5移动应用开发的源头开始,很大程度的源代码的知识产权。APICloud的加密方案特点有:
1、一键加密,运行时解密:开发者只需要在APICloud上编译时选择代码加密,云服务器在编译App安装包时就会将该App的HTML、JavaScript、CSS代码自动加密,同时该App在运行过程中实时解密,App退出即焚,不留下解密痕迹;
2、零修改,零影响:APICloud的加密方式不改变代码量大小,不影响运行效率,针对代码的加密方案不会修改开发者的任何代码,加密后的代码不会比加密前多出一个字节,同时,端底层嵌入了特殊的处理方案,代码加密前后,App的运行效率、使用体验不受影响;
3、自动,智能,方便:开发者在APICloud平台开发App的过程中,无需针对代码的做特殊的处理,按照正常的开发流程进行即可;
4、安全盒子:在开发者代码的同时,针对App的各种潜在安全问题,APICloud定义了一个“安全盒子”,仅对盒子内代码进行加解密,盒子外代码灵活处理;
5、重新定义资源标准:APICloud底层在处理被代码时,重新分配了App资源的使用方式,统一资源管理,实现加速资源加载,节省系统开销,因此,加密代码后的App在运行过程中甚至能提速运行;
由此可见,APICloud代码加密功能可从HTML源头开始,很大程度的源代码的知识产权。近期有声音说APICloud的加密功能是Unicode编码的转换,事实上Unicode编码是目前计算机中广泛使用的国际标准编码,它是固定编码,没有任何的加密效果。而APICloud网页代码全包加密方案是基于RC4加密算法实现的加密功能。我们相信,这种代码加密的形态也会成为未来行业内非常重要的规避盗版的方式。
附图是在各大主流的代码编辑器中HTML、JavaScript、CSS代码加密前后的文本视图效果:
推荐:
网友评论 ()条 查看