2011-08-21 30 views
6

有什麼辦法可以確切地知道POST請求源自哪個服務器?POST請求的起源

我想實現一個方法,其中,我可以檢查的具體請求,源自我的網站,因此這將有助於我保持我的網站安全

感謝

+0

您是否在尋找推薦人?用戶來自哪個頁面? –

+0

你真的是指「源自我的網站」,還是你的意思是「源自從我的網站發送到瀏覽器的頁面上的表單」?他們是完全不同的東西。 –

+2

不要依賴引用標頭。它不能被信任,並且經常在防火牆中被剝奪,從而泄露有關內部系統的信息。 – Erlend

回答

8

這聽起來像你試圖實現跨站請求僞造保護,其中您需要確保請求源自您的Web服務器提供的HTML。不要依賴引用頭,因爲它經常在防火牆中被剝離,並且可以被操縱。

有關如何實施此類保護的一些好消息,請參閱OWASP。基本上,它是這樣的:

  1. 生成安全的隨機值,並把它貼在用戶的會話

  2. 對於每一個HTML表單,包括此值作爲隱藏的價值()

  3. 每當POST請求會返回到您的服務器,請檢查隱藏字段中的值是否與用戶會話中的值相同。如果不是,請拒絕該請求。

因爲ALUE是每個用戶唯一的,攻擊者不能簡單地加強與預填充值的形式,並誘騙用戶使用JavaScript自動張貼。該請求將被拒絕,因爲攻擊者不知道僞造形式中的隱藏域包含哪個值。

+0

」每當POST請求返回到您的服務器時,請檢查來自隱藏字段的值是否與用戶會話中的值相同。「 - 好吧,您低估了我的意思,並沒有描述爲什麼以及如何檢查**請求的來源**。 – zerkms

+0

感謝您的洞察力! :D – Anant

+0

zerkms:所以你低估了我是因爲我低估了你? 我試圖超越這個問題。 「我試圖實施一種方法,在這種方法中,我可以檢查某個特定請求是否源自我的網站,因此這將幫助我保持我的網站安全」 他想檢查_his website_,請求是否源自_his website_ – Erlend

1

你想$_SERVER["REMOTE_ADDR"]