我需要嘗試和欺騙HTTP_REFERER通過我的另一個頁面,以便在目標頁面中,我可以確定請求是從「正確的」頁面進入並執行適當的邏輯。你如何欺騙HTTP_REFERER?
- 我該如何在JavaScript(AJAX)中做到這一點?
- 我可以在ASP.Net中做到這一點嗎?
TIA 公羊
我需要嘗試和欺騙HTTP_REFERER通過我的另一個頁面,以便在目標頁面中,我可以確定請求是從「正確的」頁面進入並執行適當的邏輯。你如何欺騙HTTP_REFERER?
TIA 公羊
一般來說,你不能導致其他瀏覽器沒有漏洞,插件,或其他擴展返回假HTTP_REFERER。如果您想修改您的網絡瀏覽器發送的值並使用FireFox,請查看Modify Headers擴展。
在任何情況下,您都不應該依賴HTTP_REFERER的準確性。無法保證您收到的HTTP_REFERER不是僞造的或者僅僅是未發送的。
如果您想在目標頁面測試請求是否來自「正確」頁面,則不需要欺騙引用者。您只需從其他頁面發出請求即可。在您認爲是「正確」的網址的另一個網址上設置網頁,然後通過點擊指向目標網頁的鏈接或從目標網頁發出圖片發出請求。
調用頁面來自我無法訪問的客戶端應用程序。因此,我不需要在黑暗中進行編碼,而需要「欺騙」引用者並測試我的頁面。 – rams 2009-03-05 23:10:12
它已被提及,你不能真正欺騙的東西。但要說明的是,HTTP_REFERER頭由瀏覽器生成,所以在服務器端你無法控制它(包括切換javascript,可能會或不會被啓用)。
如果你只是想測試你的頁面一定的標題(如「引薦」)的響應,你可以使用命令行工具,如curl或wget這在大部分BSD和Linux兩種型號(包括OS/X)。如果您使用的是MS Windows,則可以使用Cygwin來獲得curl或wget。
wget -O - --referer="http://example.com/some/path" http://example.com/
或
curl -e "http://example.com/some/path" http://example.com/
但是你的核心原因這樣做顯然是爲了「保護」的網頁,我想。如果您確實想確保一個頁面(稱爲「B」)只在首先訪問其他頁面(「A」)後訪問,那麼您需要在服務器端更復雜的邏輯。
如果您要存儲會話cookie,則可以在設置布爾變量的頁面「A」中嵌入一些邏輯。然後在頁面「B」中添加邏輯,檢查以確保變量已設置。
我將把它作爲練習讓讀者瞭解如何在ASP.NET中執行此操作。 (因爲我是一個PHP程序員; - ])
感謝您的鏈接。我會檢查出來的。 – rams 2009-03-05 23:10:44
如果您使用Chrome [ModHeader](https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj)擴展程序,請執行此項工作! – GiDo 2015-07-22 09:22:25