我以爲我真的很光滑,通過使用$_SERVER['HTTP_REFERER']
變量來保證我的腳本被從適當的頁面調用。
幸運的是,當我在我的測試瀏覽器中執行header('Location: yourPathHere.php')
重定向時,它不會設置$_SERVER['HTTP_REFERER']
變量。所以,我看着它在http://php.net/manual/en/reserved.variables.server.php,才發現這...
「HTTP_REFERER」
頁(如有的話) 稱爲用戶代理當前 頁面的地址。這由用戶代理設置。 並非所有的用戶代理都會設置此功能,並且有些功能提供將HTTP_REFERER作爲功能進行修改的功能。總之, 它不能真正被信任。
所以我的問題是:我怎樣才能保證我的頁面被導航到來自可信來源?
編輯:澄清有關評論部分的問題。我試圖避免XSRF(跨站請求僞造)。
您不能。你怕什麼呢? – SLaks 2011-04-21 14:17:27
簡而言之,XSS(跨站腳本)。 – Zak 2011-04-21 14:20:04
@Zak:XSS如何與「我的訪客從哪裏來」相關?我感到困惑,請詳細說明。 – Piskvor 2011-04-21 14:21:08