最近我一直在爲我的網站編寫一個csrf保護庫。CSRF令牌 - 兩個請求=失敗?
如果沒有在$ _SESSION中生成一個隨機令牌,那麼每個請求都會生成一個隨機令牌。
一切運作良好,測試和精細的 - 但是,想到這個場景的:
在我的網站:
- 用戶進入我的網站(example.com)和登錄。
- 現在他打開另一個惡意網站。
惡意網站現在確實(在JavaScript):
- 先運行http://example.com ..和使用JavaScript(正則表達式或其他)進去HTML CSRF令牌形式 - 說其 「randomToken」 。
- 用JavaScript - 立即抓取http://example.com/my-profile/?deletemyaccount=1&token=randomToken
這可能與明顯後做太多,不只是得到。
我想過檢查HTTP_REFERER,但那是不可靠的。
任何想法如何從這個保護?這真的有可能嗎?在我看來,使用jQuery這種攻擊應該很容易。
很有可能使用AJAX。引用者也無濟於事,因爲可以在AJAX請求中操縱任何和所有頭文件。我認爲你對這一個運氣不好。請嘗試使用CAPTCHA。 – Kenaniah 2012-02-08 21:24:48