[英]CSRF Token implementation in Struts 1
我們正在使用同步器令牌來防止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(請求,重置)
在顯示編輯頁面的操作期間,您調用saveToken
方法。
saveToken(request)
這將生成一個新令牌並將其保存在會話中( html:form
標記檢測到此值並將其作為隱藏值存儲在html表單中)。 您實際上並不需要在JSP中創建輸入隱藏元素,因為saveToken
方法與html:form
一起將創建它。
在保存數據的操作期間,您調用isTokenValid
方法。 此方法檢查提交的值是否與會話中保存的令牌匹配。
此時,如果令牌有效,則有兩種選擇:
您可以調用resetToken
,以清除會話上的令牌。 因此,如果用戶再次提交頁面,則應清除會話上的令牌,並且對isTokenValid
的第二次調用將失敗。
將true作為第二個參數傳遞給isTokenValid
。 檢查后將重置令牌。
isTokenValid(request,true)
您可以在以下Struts API中找到更多信息:
希望這對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.