2010-05-19 93 views
0

構建應用程序,當我使用一個令牌,以防止對形式的攻擊安全令牌問題請求

每一種形式呈現它得到一個新的ONE TIME安全令牌的時間,我包括形式爲隱藏的領域。該令牌也存儲在會話中。

當表單被髮送時,會根據會話中的令牌驗證令牌以確保表單是合法的。這對標準頁面非常有用。

問題 使用Ajax發送表單時,可能有多個頁面上,一旦你送的這些形式之一,令牌,然後換了別人作爲一個一次性權無效。

有沒有人有建議呢?還是足夠安全,可以在每次會話中生成一個令牌,並且每次發送表單時都使用該令牌而不是使令牌無效?

+1

如果我在單獨的選項卡中打開一些常規窗體,會發生什麼情況?您是否一次在會話中保留多個有效令牌? – 2010-05-19 14:44:36

+0

這是一個非常好的問題,說實話,我試圖找出如何做一次令牌,目前我的令牌對於會話很有用,我想你的問題指出,Ajax不是唯一的問題。 – 2010-05-19 14:50:31

回答

2

如果您想遵循您當前的方法,您可以在每次執行AJAX請求時生成一個安全令牌,並在AJAX響應中返回它,並在獲取時將其注入隱藏。但是,我會重新考慮您當前的安全令牌方法。 Here你有一些關於OSWAP wiki的提示。

+1

http://csrf.htmlpurifier.org/ 您認爲這是一個有效的解決方案嗎? – 2010-05-19 15:49:29

+0

我不知道這個庫,但似乎是一個不錯的選擇,謝謝你。在我看來,我不會去完成這項工作,最好將它委託給一個圖書館,如果需要的話,稍後再建立它。 – Matias 2010-05-19 17:32:36

+0

雖然您建議的庫不會幫助您處理客戶端表單/ ajax請求,因爲它只是用PHP重寫服務器端生成的表單。 – zcrar70 2011-10-13 18:43:08