如何防止.js的脚本被盗链

JavaScript020

如何防止.js的脚本被盗链,第1张

如果不要别人链你在 js 文件可以

在JS脚本文件里加上一个判断:

if(/^http:\/\/www\.meizz\.com.*/i.test(window.location.href))

window.location.href = "http://www.meizz.com/"

如果别人复制下来 ,最办法了。只能js代码混淆 ,减少代码的可读性。

混淆工具:

YUI Compressor

Google Closure Compiler

UglifyJS

JScrambler

//防盗一般只是判断referer是不是自己网站,如果referer为空也会显示图片,所以有了下面的代码。

 

<meta http-equiv="Content-Type" content="text/html charset=gb2312" /> 

<script type="text/javascript"> 

function showImg( url ) { 

var frameid = 'frameimg' + Math.random() 

window.img = '<img id="img" src=\''+url+'?'+Math.random()+'\' /><script>window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\' }<'+'/script>' 

document.write('<iframe id="'+frameid+'" src="javascript:parent.img" frameBorder="0" scrolling="no" width="100%"></iframe>') 

</script> 

<h1>直接盗链:</h1><br> 

<img src="http://image-7.verycd.com/5f95d1b249b411d069ecdb2c7a370e3c160890(600x)/thumb.jpg" /><br> 

<h1>js破解盗链:</h1><br> 

<div id="hotlinking"><script type="text/javascript">showImg('http://image-7.verycd.com/5f95d1b249b411d069ecdb2c7a370e3c160890(600x)/thumb.jpg')</script></div><br>

兼容性:已测试IE6、IE7、IE8、chrome 7、FF3.6、Opera10.63 

防御方法: 

1、不允许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的) 

2、地址变更(lighttpd的是根据有效时间,nginx的根据是md5) 

3、登录校验(如必须登录网站帐号后才能访问);

函数如下:

function showImg( url ) { 

var imgid = Math.random(), 

frameid = 'frameimg' + imgid 

window['img'+imgid] = '<img id="img" src=\''+url+'?kilobug\' /><script>window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\' }<'+'/script>' 

document.write('<iframe id="'+frameid+'" src="javascript:parent[\'img'+imgid+'\']" frameBorder="0" scrolling="no" width="100%"></iframe>') 

}

js加密是防君子不防小人的,只能适当增加获得源代码的难度。如果是调试目的,建议提供两个版本的js,一个加密一个非加密,调试的时候还是明文最方便,既然是给自己看为何还要加密。

只要是在网上能在线看的都能被下载下来。不论有没有下载连接,直接从电脑端口截获信息然后下载到本地。