首先看下效果,以下两张图分别使用直接盗链和破解盗链,可以右键查看图片URL,是同一张图片。
直接盗链
破解盗链
实现代码:
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>'
);
}
|
调用方式:
showImg(
'图片地址'
);
|
关于防御方法,有以下3点:
1、不允许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的)
2、地址变更(lighttpd的是根据有效时间,nginx的根据是md5)
3、登录校验(如必须登录网站帐号后才能访问)
原文链接:javascript 破解允许空白referer的防盗链图片
本文转自胡尐睿丶博客园博客,原文链接:http://www.cnblogs.com/hooray/archive/2011/05/12/2044744.html,如需转载请自行联系原作者