首先看下效果,以下两张图分别使用直接盗链和破解盗链,可以右键查看图片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防盗链图片的方法,并提供了实现代码。同时,探讨了三种防御策略:限制referer、地址变更和登录校验。
1542

被折叠的 条评论
为什么被折叠?



