2011-08-07 35 views
2

許多消息來源建議將表單中的令牌添加到表單中以使表單更安全。表單中的安全令牌

我加入令牌的所有形式的論壇,現在我有以下問題:

一些用戶打開幾個瀏覽器標籤不同的論壇主題。回覆表單位於每個線程的下方。因此,如果用戶使用一個線程打開一個瀏覽器選項卡,然後使用另一個線程打開另一個選項卡,則第一種形式的令牌不再有效,如果嘗試提交第一種形式,用戶將會出錯。這種情況的解決方案是驗證碼,但我不想讓我的用戶使所有事情變得如此複雜。

你可以建議任何其他方法如何添加安全性的形式?

謝謝。

+0

你使用這個令牌的目的是什麼?你打算如何使它更安全? CSRF?重播攻擊? – Gumbo

回答

2

爲什麼打開新選項卡時令牌無效?只要令牌是通過會話或登錄用戶已知的某個祕密生成的,在打開新線程時就不需要使其無效。

下面是做到這一點的一種方法:

  1. 當用戶登錄時,創建的唯一存儲在會話中的祕密。
  2. 在討論主題的形式中,創建一個由會話祕密,討論中的論壇主題以及任何其他信息組成的哈希,這些信息可能會在情境中找到有價值的信息。
  3. 當用戶提交表單時,根據上述相同的信息創建一個散列表,並查看它是否與表單中提交的內容相匹配。

除了保持會話安全的正常措施(超時,重置登錄等),這應該保持您的表單相當安全,沒有給用戶帶來任何不便。

+0

如果可以,我會+1。 – Ariel