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


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



相关阅读:
简易方法实现网页图片防盗链设置
浅谈网页中各种链接引用方法
Tuning工具Statspack的几个使用误区
教你迅速手动定制Windows XP系统的启动画面
破除一些网站复制、右键限制
如何在MySQL数据库中定义外键
浅析Oracle用户权限分配的具体方法
javascript图片自动缩放和垂直居中处理函数
javascript 获取特定的 CSS属性值
磁盘管理--umount
让插入到 innerHTML 中的 script 跑起来的代码
SQL Server复制技术
Exchange环境中的 IIS 锁定和 URLscan 配置(1)
SQLServer中的切割字符串SplitString函数
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4