另类代码保护:把JS代码编译成字节码。

当使用NodeJS开发了产品或项目,在交付、给他人部署时,直接提供代码进行部署是很不妥的:JS源代码直接就交出去了!直接就是源码泄露。

为了保护代码、保护自身利益,通用在交付给他人之前,都会进行代码保护。对于JS这类代码,通用的是使用JShaman之类JS代码混淆加密平台,对代码进行保护。

当然也有另类的非主流方式,比如本文,将教给大家一种将NodeJS代码编译成字节码的方式。

另类代码保护:把JS代码编译成字节码。_第1张图片

 

下面提供源码级的方案,使用环境也是Nodejs。

1、编译JS代码为字节码

原理是使用V8引擎虚拟机技术进行JS代码到字节码的编译:

另类代码保护:把JS代码编译成字节码。_第2张图片

 

 

2、运行编译后的字节码

另类代码保护:把JS代码编译成字节码。_第3张图片

 

3、实测运行

以编译并运行ShareWAF为例,ShareWAF是一款商业的大型WAF(WEB应用防火墙)。

编译前,将ShareWAF主程序复制到Js2ByteCode目录下:

另类代码保护:把JS代码编译成字节码。_第4张图片

 

编译为字节码:

另类代码保护:把JS代码编译成字节码。_第5张图片

 

查看编译后的jsb文件,可以看到是非可识别代码,更不是JS代码,是字节码

另类代码保护:把JS代码编译成字节码。_第6张图片

 

防护效果已经起到了。

运行字节码:

另类代码保护:把JS代码编译成字节码。_第7张图片

 

字节码运行效果,跟ShareWAF编译为字节码之前运行效果一样,说明这个方式是可行的。

不过这种方式,也有一定的弊端,比如兼容性,Win系统跟Linux是有差异的;又比如全局变量的传递需要在运行时配置等。

你可能感兴趣的:(网络安全,NodeJS编程实战)