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, 浏览器
原来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));