JShaman的域名锁定功能,支持泛域名
JShaman的JS代码混淆加密中,有一项“域名锁定”功能。使用此功能后,代码运行时会检测浏览器地址中的域名信息,如是非指定域名,则不运行,以此防止自己网站的JS代码被复制他人的网站中使用的盗用行为。
此功能,使用非常灵活,支持多域名,且支持泛域名。
本文演示泛域名的设置方法及保护后的效果。
1、首先在本地搭建一个web服务器,以方便测试。
服务器用nodejs实现,监听80端口,收到请求时读取文件并返回,服务器代码:
2、使用本地host文件,解析两个子域名到本地,如下:
3、编写一个简单的html文件,包含两行js代码:
4、使用在hosts文件中设定的域名进行访问:
此时测试环境已准备好。接下来,进行正式测试。
5、将上面两行js代码复制到JShaman准备进行混淆加密:
在配置中,进行正确设置:
然后进行js代码的混淆加密:
加密后,将加密的代码复制回原来位置:
此时,再访问,混淆加密时设定了一级域名,用二级域名访问:
可见,两个子域名访问时,加密后的js代码都可以正确执行。
6、此时,再在hosts中新增一个本地域名解析:
再用此域名访问:
由图可见,web服务器后端已经收到请求,但浏览器无法打开页面,并会跳转到about:blank空白页面。
7、结论:域名锁定已生效。效果:在设定域名的子域名下,代码正常执行,页面正常打开。在非设定的域名下,js代码无法执行、页面无法打开。