2012-02-08 99 views
1

最近我一直在爲我的網站編寫一個csrf保護庫。CSRF令牌 - 兩個請求=失敗?

如果沒有在$ _SESSION中生成一個隨機令牌,那麼每個請求都會生成一個隨機令牌。

一切運作良好,測試和精細的 - 但是,想到這個場景的:

在我的網站:

  1. 用戶進入我的網站(example.com)和登錄。
  2. 現在他打開另一個惡意網站。

惡意網站現在確實(在JavaScript):

  1. 先運行http://example.com ..和使用JavaScript(正則表達式或其他)進去HTML CSRF令牌形式 - 說其 「randomToken」 。
  2. 用JavaScript - 立即抓取http://example.com/my-profile/?deletemyaccount=1&token=randomToken

這可能與明顯後做太多,不只是得到。

我想過檢查HTTP_REFERER,但那是不可靠的。

任何想法如何從這個保護?這真的有可能嗎?在我看來,使用jQuery這種攻擊應該很容易。

+0

很有可能使用AJAX。引用者也無濟於事,因爲可以在AJAX請求中操縱任何和所有頭文件。我認爲你對這一個運氣不好。請嘗試使用CAPTCHA。 – Kenaniah 2012-02-08 21:24:48

回答

3

其他網站不應該能夠通過JavaScript獲取您的網站的內容,瀏覽器明確禁止這一點。檢查出Same Origin Policy

+0

謝謝!接受的答案!所以唯一的辦法是通過XSS攻擊我自己的起源。這實際上解釋了很多。 – 2012-02-09 00:13:20

相關問題