HTTP_REFERER用法及偽造

      網(wǎng)友投稿 1711 2022-05-30

      引言

      在php中,可以使用$_SERVER[‘HTTP_REFERER’]來獲取HTTP_REFERER信息,關(guān)于HTTP_REFERER,php文檔中的描述如下:

      “引導(dǎo)用戶代理到當(dāng)前頁的前一頁的地址(如果存在)。由 user agent 設(shè)置決定。并不是所有的用戶代理都會設(shè)置該項,有的還提供了修改 HTTP_REFERER 的功能。簡言之,該值并不可信。 ”

      在百度百科中,對于該參數(shù)的描述如下:

      “HTTP Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求的時候,一般會帶上Referer,告訴服務(wù)器我是從哪個頁面鏈接過來的,服務(wù)器籍此可以獲得一些信息用于處理?!?/p>

      從上面的論述中我們可以得到如下幾點結(jié)論:

      http_referer由瀏覽器生成,并不是所有瀏覽器都會設(shè)置該值。 http_referer可以偽造,并不可信。

      ;

      重點是c站的代碼,如下所示:

      這樣當(dāng)a站訪問時圖片可以正常顯示,而b站訪問時圖片是顯示不出來的。

      什么時候獲取不到HTTP_REFERER值

      綜上所述,HTTP_REFERER存在需要兩個條件:

      瀏覽器(客戶端)請求(服務(wù)器端請求的情況下,是不存在HTTP_REFERER的,但是可以偽造header,這在下一節(jié)中將提及);

      存在前導(dǎo)頁;

      以下是網(wǎng)友收集的獲取不到HTTP_REFERER值的情況:

      在瀏覽器內(nèi)直接敲URL

      windows桌面上的超鏈接圖標(biāo)

      瀏覽器內(nèi)書簽

      第三方軟件(如Word,Excel等)內(nèi)容中的鏈接

      SSL認(rèn)證網(wǎng)站跳入

      http://example.com/“> meta頁面設(shè)置自動跳轉(zhuǎn)時,在example.com將取不到REFERER URL

      使用JavaScript的Location.href或者是Location.replace()

      在以下情況下可以獲取HTTP_REFERER值:

      直接用

      form提交的表單(POST或GET)

      src請求(如js的script標(biāo)簽及html中img標(biāo)簽的src屬性)

      如何偽造HTTP_REFERER

      前面提到HTTP_REFERER是可以偽造的,那么在php中,如何偽造HTTP_REFERER呢?有如下三種方法:

      首先是接口代碼:

      'ok', 'refer' => $HTTP_REFERER ) ));

      curl

      代碼示例:

      執(zhí)行結(jié)果如下:

      偽造成功。

      file_get_contents

      一直沒怎么用過file_get_contents來發(fā)送post請求,其實file_get_contents可以發(fā)送任何http請求,后期會針對性的整理一篇文章出來。

      代碼示例:

      $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Referer: http://www.google.com" ) ); $context = stream_context_create($opts); // Open the file using the HTTP headers set above var_dump(file_get_contents('http://www.c.com/api.php', false, $context));

      執(zhí)行結(jié)果:

      偽造成功

      socket

      代碼示例:

      $fp = fsockopen("www.c.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)
      \n"; } else { $out = "GET /api.php HTTP/1.1\r\n"; $out .= "Host: www.c.com\r\n"; $out .= "Referer: www.google.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); }

      執(zhí)行結(jié)果:

      偽造成功。

      在做這次測試的時候,第一次執(zhí)行報錯:Your browser sent a request that this server could not understand.

      后來發(fā)現(xiàn)是$out = “GET api.php HTTP/1.1\r\n”;中少了’/’,糾結(jié)了老半天,暈死

      ---------------------

      原文:https://blog.csdn.net/u011250882/article/details/49679535

      HTTP PHP

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:初識 torch.Autograd | 理解pytorch網(wǎng)絡(luò)訓(xùn)練過程 | 筆記
      下一篇:為什么選擇學(xué)習(xí) Sanic 框架
      相關(guān)文章
      久久夜色精品国产噜噜亚洲AV| 亚洲精品永久在线观看| 涩涩色中文综合亚洲| 无码久久精品国产亚洲Av影片| 亚洲人成无码网WWW| 亚洲第一成年免费网站| 亚洲首页国产精品丝袜| 亚洲国产精品yw在线观看| 久久精品国产亚洲av麻豆小说| 婷婷久久久亚洲欧洲日产国码AV | 亚洲欭美日韩颜射在线二| 亚洲美女高清一区二区三区| 亚洲国产电影av在线网址| 国产亚洲精品美女久久久久| 午夜亚洲国产精品福利| 亚洲AⅤ优女AV综合久久久| 激情无码亚洲一区二区三区 | 亚洲无人区码一二三码区别图片| 激情综合亚洲色婷婷五月APP| 亚洲区视频在线观看| 亚洲免费闲人蜜桃| 亚洲精品美女网站| 亚洲男人的天堂网站| 亚洲aⅴ无码专区在线观看 | 综合一区自拍亚洲综合图区| 最新亚洲人成无码网站| 亚洲 自拍 另类小说综合图区| 亚洲高清视频一视频二视频三| 亚洲无线一二三四区手机| 亚洲中文字幕无码一区| 亚洲国产精品福利片在线观看 | 亚洲欧美日韩一区二区三区在线| 亚洲成av人在线观看网站| 国产亚洲美女精品久久久久| 久久精品国产精品亚洲| 日本亚洲成高清一区二区三区| 亚洲精选在线观看| 亚洲六月丁香六月婷婷色伊人| 亚洲人成色777777精品| 亚洲av无码成人精品区| 亚洲永久精品ww47|