为什么要对JS代码进行保护?

1、JS代码运行于客户端;
2、JS代码是公开透明的。

由于这两个原因,至使JS代码是不安全的,任何人都可以读、分析、复制、盗用,甚至篡改。因此出现了很多安全事件,典型的如:自己的原创程序代码被盗用、网站数据被篡改等等。

如果你不想让自己的代码被它人看到、不想它人了解你的代码功能,或者想降低被不怀好意的人甚至是黑客攻击。那么你应该尝试使用JS保护。

如何对JS代码进行保护?

1、使JS代码不可读,让攻击者无法理解代码功能,也无法篡改任何功能;
2、代码不可读之后,攻击者往往会进行动态跟踪调试,以期逆向还原出原始代码,或分析出程序功能。因此,使JS代码不可分析,不能进行动态跟踪调试,成为另一保护重心。

实现以上两点后,JS代码即可得到保护。

具体的保护方案、保护技术是什么?

要实现JS代码的不可读、不可分析,有以下几大类技术方案:

  • 代码加密:加密后的代码看似乎杂乱,但代码在执行前需要进行解密才能执行,只要找到解密函数即可还原出原始代码,所以此方式安全系数较低;
  • 虚拟机技术:可以屏蔽JS原始关键字,但兼容性较差,无法保证在多端,多浏览器下运行;
  • 代码混淆:使用字符串阵列化、平展控制流、多态变异、僵尸函数等手段,使代码变的不可读不可分析,达到最终保护的目的。且不影响代码原有功能。是理想、实用的JS保护方案。

JShaman采用的主要是代码混淆技术。

为什么选择JShaman

国内首家专业JS保护提供商;

多年技术积累,多项技术专利,专注JS保护!

简单易用、上手方便,无需相关专业知识、无复杂使用配置,一键生成,一行引用!

安全、稳定、高效:高强度混淆+多态变异,保护代码不可读、不可分析,安全放心!

变量混淆

将带有含意的变量名、函数名、常量名随机变为无意义的类乱码字符串,降低代码可读性。

字符串加密

将字符串阵列化集中放置、并可进行Md5或Base64加密存储。使代码中不出现明文字符串。

平展控制流

打乱函数原有代码执行流程及函数调用关系,使代码逻变的混乱无序。

僵尸代码

随机在代码中插入无用的僵尸代码、僵尸函数,进一步使代码混乱。

代码压缩

移除无用的空格、回车、注释、调试语句等,即可压缩代码使文件变小易于加载,又起到混乱的效果。

多态变异

使JS代码每次被调用(引用),代码自身即立刻自动发生变异,变化为与之前完全不同的代码(功能完全不变,只是代码形式变异),以此杜绝代码被动态分析调试!