我们先看一个贴吧的帖子: http://tieba.baidu.com/f?kz=670765362
是不是很神奇呢,如果上面的图片是有诱惑性的并且有几个字“点击查看完整图片”那不知道有多少人会点。
也许有的站长会想到原理咯,呵呵。但是我还是把代码发出来吧。其实这也算是浏览器欺诈,只有IE才受这套。ff跟google 浏览器是免疫了。原理要从HTTP协议说起了,HTTP协议有一个HTTP_REFERER属性,这个属性是记录你的来路的,比如你在a.html 点 <a href="b.html">go</a> 跳转到b.html之后浏览器自动会附加一个 HTTP_REFERER 属性.就是记录你的“来路”。那么如果是动态脚本比如php,asp.这些就可以使用服务器预设的变量来获取“你从哪里来到我这里的呢?”。 而这个HTTP_REFERER属性只有点击才会触发,通过重定向或者使用javascript脚本转向等是不会有这个参数的。当然也有几个JS跳转函数是可以有这个参数的,其实你可以理解为,HTTP_REFERER 你浏览器上一页就是靠他记录。
HTTP_REFERER是有特性的,我们调用图片产生了HTTP_REFERER了么?答案是没有的,上文说到了图片是浏览器获取的,并不是我们点击跳转过去的自然不产生HTTP_REFERER。那么我们就可以通过动态脚本的服务器预设HTTP_REFERER变量判断这个链接是不是点过来的,如果是那么我们就选择相应的分支执行,如果不是就选择不是的分支执行。说了那么多,大家应该明白了?我上代码吧。
baidu.php
<?php
//code by 风吟(http://fengyin.name)
$noreferer = 'http://fanfou.info/images/7d6hmf4k.gif'; //直接调用则显示这个图片.
$gotourl = 'http://fanfou.info/'; //如果HTTP_REFERER为逻辑真,并且带有baidu则跳转到这里.
stristr($_SERVER['HTTP_REFERER'],'baidu')?header("location: {$noreferer}"):header("location: {$gotourl}");
?>
实现准备一张宽度超过570的图片,把代码中的地址替换为你的图片地址。
然后上传到你的主机 例如: 你的网站/baidu.php 能访问.
在贴吧贴图中输入 你的网站/baidu.php#.gif (必须加#.gif 或者#jpg 等 因为不加百度不让你贴说不是图片,其实风吟又利用了浏览器的漏洞。因为在浏览器给服务器传值过程中#后面的内容是被忽视的).
如果你服务器是apache 或者litespeed等先进玩意,你就可以写一个.htaccess 如下代码。
#添加后缀让PHP解析
AddType application/x-httpd-php.jpg
再把你的baidu.php 改成 baidu.jpg 效果更佳。当然这要服务器支持。好了文章就知道这里吧。谢谢大家观看,如果有什么新鲜玩意风吟会跟大家分享的。