许多消息来源建议在表单中添加令牌,以使表单提交更安全。
我在论坛中为所有表单添加了令牌,现在我遇到以下问题:
一些用户使用不同的论坛帖子打开几个浏览器标签。回复表格位于每个主题下方。因此,如果用户用一个线程打开一个浏览器选项卡,然后用另一个线程打开另一个选项卡,则第一个表单中的令牌不再有效,如果尝试提交第一个表单,用户将收到错误。这种情况的解决方案是验证码,但我不想让我的用户如此复杂。
您能否建议如何为表单添加安全性?
感谢。
答案 0 :(得分:2)
为什么打开新标签时令牌无效?只要令牌是从会话已知的某个秘密或登录用户生成的,就不需要在打开新线程时使其无效。
这是实现此目的的一种方法:
除了保持会话安全的正常措施(超时,登录时重置等),这应该保证您的表格相当安全,而不会给用户带来任何不便。