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

相关文章

  • 简单封装js的dom查询实例代码

    简单封装js的dom查询实例代码

    下面小编就为大家带来一篇简单封装js的dom查询实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • uni-app使用uniCloud实现图形验证码(uni-captcha)详细过程

    uni-app使用uniCloud实现图形验证码(uni-captcha)详细过程

    这篇文章主要给大家介绍了关于uni-app使用uniCloud实现图形验证码(uni-captcha)的相关资料,实际开发工作中在登陆的时候经常需要图形验证码,需要的朋友可以参考下
    2023-07-07
  • 微信小程序实现选项卡功能

    微信小程序实现选项卡功能

    这篇文章主要为大家详细介绍了微信小程序实现选项卡功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • textarea支持图形编辑的实现方法

    textarea支持图形编辑的实现方法

    本来以为只有iframe支持编辑了,今天突然发现textarea也支持编辑 :( 是不是我太愚钝了? textarea不能用innerHTML来插入html,而用appendChild 这样的话稍微修改下,评论等简单的textarea的表情插入就可以直接显示出来了 而不是只显示emot了 比较实用标题起的确切,但如果叫“现textarea支持编辑”似乎更废话
    2008-03-03
  • javascript实现缓动动画效果

    javascript实现缓动动画效果

    这篇文章主要为大家详细介绍了javascript实现缓动动画效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)

    JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)

    这篇文章主要介绍了JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • javascript cookie解码函数(兼容ff)

    javascript cookie解码函数(兼容ff)

    javascript cookie解码函数
    2008-03-03
  • bootstrap table小案例

    bootstrap table小案例

    这篇文章主要介绍了bootstrap table小案例,教大家如何使用表格组件bootstrap table
    2016-10-10
  • Javascript循环删除数组中元素的几种方法示例

    Javascript循环删除数组中元素的几种方法示例

    这篇文章主要给大家介绍了关于Javascript循环删除数组中元素的几种方法,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • js中的json对象详细介绍

    js中的json对象详细介绍

    JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象
    2014-10-10

最新评论