部分网站允许空白referer的防盗链图片的js破解代码
更新时间:2011年05月12日 22:54:41 作者:
主要是有些网站的图片调用是防盗链的但一般只是判断referer是不是自己网站,如果referer为空也会显示图片,所以有了下面的代码。
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('图片地址');
完整演示代码:
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
兼容性:已测试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>');
}
调用方法:
复制代码 代码如下:
showImg('图片地址');
完整演示代码:
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
兼容性:已测试IE6、IE7、IE8、chrome 7、FF3.6、Opera10.63
防御方法:
1、不允许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的);
2、地址变更(lighttpd的是根据有效时间,nginx的根据是md5);
3、登录校验(如必须登录网站帐号后才能访问);
相关文章
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
js,jQuery 排序的实现,网页标签排序的实现,标签排序,需要的朋友可以参考下。2011-04-04浅谈js-FCC算法Friendly Date Ranges(详解)
下面小编就为大家带来一篇浅谈js-FCC算法Friendly Date Ranges(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-04-04thinkphp标签实现bootsrtap轮播carousel实例代码
这篇文章给大家介绍thinkphp标签实现bootsrtap轮播carousel实例代码,非常不错,具有参考借鉴价值,需要的的朋友参考下2017-02-02
最新评论