js如何代码绑定域名,如何使js文件只能指定的域名下加载?

很多时候,我们有这样一种需求:自己写好的js代码、js文件,希望只在自己的域名下运行,不想被别人远程加载、使用,这时怎么办呢?

可以用以下的代码来实现域名锁定:


(function() {

//设定域名字符串,代码只能在此域名下加载
var chars = 'www.jshaman.com';
//字符串加密
var de_chars="";
for(var i=0;i de_chars += chars[i].charCodeAt(0);
}

//获取当前页面域名
var hosts = location.host;
console.log(hosts);
//对当前页面域名字符串加密
var s = "";
for(var i=0;i s += hosts[i].charCodeAt(0);
}

//比较是否一致,不一至则使出错
if(s != de_chars) {
console.log(s,de_chars);
throw new URIError('不能在此域名下载!');
}

})();


把这段代码,加在想域定在域名下运行的文件头,这样当文件加载并执行时,代码就会检测当前的运行域名,是否是指定好的域名,如果不是,则抛出错误,后面的代码将不会被执行。

这是我们手动实现的方法,还存在一些弊端,如:绑定的域名会出现在代码中,如果别人想使用我们的代码,可以把代码copy过去,把前页这段绑定域名的代码删去,绑定功能就失效了。
所以,它的保护强度是不高的,如果你有特点重要的代码要保护,要绑定域名,可以使用专业的JS代码保护工具,这里推荐JShaman,一个专业的JS代码保护平台,既可以加密代码,也可以实现我们这里说的绑定域名。