通过JS破解图片防盗链限制

破解盗链

实现代码:

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、登录校验(如必须登录网站帐号后才能访问)