中文版 | English

网站首页 | 个人作品 | 站长日志 | 给我留言 | 经典分享 | 友情链接 | 黑白人生


盗链

刺 之前曾写过一篇文章: Data URL Schema 与 如何盗链百度的图片 下面也是转他的 提到可以采用新出的 Data URL Schema ,以不发送referer的形式,绕过百度的referer检验。但这种方式只有FF支持,IE还不支持,所以尚未采用。这些天来SECINN深受百度图片防盗链之苦,用户体验有折扣,所以我决定一劳永逸的解决这个问题。 实际上浏览器是根据schema 来决定是否发送 referer的。 典型的就是从 https 跳到 http 会被浏览器拒绝发送 referer,因为可能会导致敏感信息泄露。 比较通用绕过referer检查的方式还有通过一些网页代理访问,原理也是代理访问时不发送referer,或者伪造referer。 但是出于法律风险,我不想提供我的网页代理(也不希望用验证域名的方式让代理变得复杂),也不想使用第三方的代理。 前些天,harry给我提供了一种非常猥琐但极其通用的方式绕过浏览器检查。 参考如下例子:
<script>
window.sc="<img src='http://www.businessinfo.co.uk/labs/hackvertor/images/logo.gif?"+Math.random()+"'>";
</script>
<iframe src="javascript:parent.sc"></iframe>
我也没想明白为啥iframe会直接把那段img标签给插入其内容中,但是浏览器确实这样做了! 由于src的schema是 ”javascript“,所以后面的这个image请求是不发送referer的! 出于这个原理,我们就可以绕过一切基于Referer 的防盗链检测了。 secinn中新的代码如下: <code><script type="text/javascript">// <![CDATA[ var im_2971a6649dfbd861bd7d04df14543c06 = "<img style='max-height:500px;width:auto;' src=http://hiphotos.baidu.com/54nop/pic/item/939407fb49f406266c22eb5e.jpg >"; // ]]></script> </code> 其中出于用户体验的因素在iframe onload的过程中,根据加载图片的大小修改了iframe本身的长宽。 so,向可怜的百度 hiphotos的防盗链图片说bye bybe吧! 出于尊重原始数据的原因,仅在planet的在线访问上增加了该功能,镜像功能和rss中未进行此类修改。 欢迎访问SecINN ,获得最新的体验。 PS: 我们的Webzine 04 将于下周在 SecINN 发布,敬请期待!
网友:linx
2009-12-16 19:00 | 回复
在浏览器输入 javascript:"abc" javascript:a=111;b="abc"
都可以在当前页面看到abc。浏览器会把伪协议的返回值输入到当前页面。 所以以下代码 <iframe src="javascript:parent.sc"></iframe> 实际上是新建一个iframe,内容为'<img src=http://w>': <iframe src="javascript:'<img src=http://w>'"></iframe>
我在这里测试下baidu的图象吧



Copyright 1998-2021. All rights reserved.
工信部备案:冀ICP备19032940号-1|公安部备案号:13020802000209