在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,一个加密一个非加密,调试的时候还是明文最方便,既然是给自己看为何还要加密。只要是在网上能在线看的都能被下载下来。不论有没有下载连接,直接从电脑端口截获信息然后下载到本地。