今天我在我的webapplication中添加了crsf保护。
为了实现这一点,我使用了网络上的实现。提交表单后,此实现不会从会话中删除令牌。我决定在提交表单后从会话中删除令牌,因为不再需要它。
我现在碰到的是当我提交表单然后我按下浏览器的后退按钮并再次提交表单时出现错误(因为令牌已从用户会话中删除,但浏览器仍保留旧表单在浏览器缓存中并使用旧令牌显示它。)
为了防止这种情况发生,我想在15分钟后从用户会话中删除令牌。这样他应该能够返回并重新提交表格。我想知道这是否是一个有效且安全的问题解决方案?
答案 0 :(得分:2)
除了防止CSRF之外,该令牌还可以帮助您防止双重表单提交。当用户提交两次相同的表单时,我怀疑您的应用程序是否满意。因此,可以在第一次提交时删除令牌,并在第二次提交时显示一条消息,说明:“表单提交无效或已经处理过......”