簡體   English   中英

Struts 1中的CSRF令牌實現

[英]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方法。 此方法檢查提交的值是否與會話中保存的令牌匹配。

此時,如果令牌有效,則有兩種選擇:

  1. 您可以調用resetToken ,以清除會話上的令牌。 因此,如果用戶再次提交頁面,則應清除會話上的令牌,並且對isTokenValid的第二次調用將失敗。

  2. 將true作為第二個參數傳遞給isTokenValid 檢查后將重置令牌。

     isTokenValid(request,true) 

您可以在以下Struts API中找到更多信息:

  1. isTokenValid(javax.servlet.http.HttpServletRequest請求)
  2. saveToken(javax.servlet.http.HttpServletRequest請求)

希望這對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM