您的位置:首页 > 运维架构 > 网站架构

部分网站允许空白referer的防盗链图片的js破解代码

2011-05-12 00:00 330 查看
Javascript源码:
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>'); 
}

调用方法:
showImg('图片地址');

完整演示代码:



function showImg( url ) {
var frameid = 'frameimg' + Math.random();
window.img = 'window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\'; }';
document.write('');
}

直接盗链:






js破解盗链:


showImg('http://image-7.verycd.com/5f95d1b249b411d069ecdb2c7a370e3c160890(600x)/thumb.jpg');


[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

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

防御方法:
1、不允许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的);
2、地址变更(lighttpd的是根据有效时间,nginx的根据是md5);
3、登录校验(如必须登录网站帐号后才能访问);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: