file_get_contents()函数也可以发送HTTP_REFERER

有时候因为某些特殊原因,可能需要伪造浏览器发送的HTTP_REFERER信息,一直来对于这样的情况都使用PHP的一个CURL扩展,虽然功能不错,但某些时候有点不方便。这时候再去仔细研究手册,发现其中的奥妙……

原来其实file_get_contents()函数也是可以伪造HTTP_REFERER信息的。利用它的第三个参数。要说明的是第三个参数是在PHP5.0.0以后才支持的,之前的版本没这个参数!

利用file_get_contents()第三个参数模拟一个文件流进行发送,例如这样:

$option = array(
'http' => array(
'header' => "Referer:$refer")
);
//$refer就是伪造的HTTP_REFERER信息URL。
file_get_contents($url, false,stream_context_create($option));

说实话,之前关于文件流函数库了解真不太多。其实里面还有很多好玩的东西。

标签:PHP, 浏览器

添加一条评论 »本文共 4 条评论

  1. 原来file_get_contents也可以伪造HTTP_REFERER

    • 呵呵,除了HTTP_REFERER,一般的HTTP头都可以伪造。

      • COOKIES 也可以偽造嗎?

        • 可以的。比如,下面这样写就可以伪造很多HTTP报头,你可以通过抓包工具看看真正的浏览器都发送什么报头,然后模拟一下就行^_^

          $optionget = array(‘http’ => array(‘method’ => “GET”, ‘header’ => “User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)\r\nAccept:*/*\r\nReferer:” . $referer . “\r\nCookie:” . $cookie));
          $file = file_get_contents($url, false , stream_context_create($option));

Deepseath Modified from Green Hope Theme · Proudly powered by WordPress · 津ICP备09005418号-1  津公网安备 12010302001005号