表格中的安全令牌

时间:2011-08-07 11:05:06

标签: forms security token

许多消息来源建议在表单中添加令牌,以使表单提交更安全。

我在论坛中为所有表单添加了令牌,现在我遇到以下问题:

一些用户使用不同的论坛帖子打开几个浏览器标签。回复表格位于每个主题下方。因此,如果用户用一个线程打开一个浏览器选项卡,然后用另一个线程打开另一个选项卡,则第一个表单中的令牌不再有效,如果尝试提交第一个表单,用户将收到错误。这种情况的解决方案是验证码,但我不想让我的用户如此复杂。

您能否建议如何为表单添加安全性?

感谢。

1 个答案:

答案 0 :(得分:2)

为什么打开新标签时令牌无效?只要令牌是从会话已知的某个秘密或登录用户生成的,就不需要在打开新线程时使其无效。

这是实现此目的的一种方法:

  1. 当用户登录时,创建一个仅存储在会话中的秘密。
  2. 在讨论主题的形式中,创建一个由会话秘密,相关论坛帖子以及您在这种情况下可能会发现的任何其他信息组成的哈希。
  3. 当用户提交表单时,请使用与上述相同的信息创建哈希,并查看它是否与表单中提交的内容相匹配。
  4. 除了保持会话安全的正常措施(超时,登录时重置等),这应该保证您的表格相当安全,而不会给用户带来任何不便。