Struts 1中的java CSRF令牌实现
我们使用同步器令牌来防止CSRF漏洞,如下所示
1> saveToken(request)
2> <input type="hidden"
name="<%=org.apache.struts.taglib.html.Constants.TOKEN_KEY%>"
value="<bean:write name="<%=Globals.TRANSACTION_TOKEN_KEY%>"/>">
3> isTokenValid(request)
由于未刷新令牌,修复程序不起作用。是什么导致了这种情况
下面的代码也会有什么不同
isTokenValid(请求、重置)
# 1 楼答案
在显示编辑页面的操作期间,调用
saveToken
方法这将生成一个新标记并将其保存在会话中(
html:form
标记检测此值并将其作为隐藏的值存储在html表单中)。您实际上不需要在JSP中创建输入隐藏元素,因为saveToken
方法和html:form
将创建它在保存数据的操作过程中,调用
isTokenValid
方法。此方法检查提交的值是否与会话上保存的令牌匹配此时,如果令牌有效,则有两个选项:
您可以调用
resetToken
,这将清除会话上的令牌。因此,如果用户再次提交页面,会话上的令牌将被清除,对isTokenValid
的第二次调用将失败将true作为第二个参数传入
isTokenValid
。这将在检查令牌后重置令牌您可以在Struts API中找到更多信息:
希望这对你有帮助