在我的Java Strut应用程序上,我使用OWASP库3.1版来保护CSRF。 由于结构复杂,我有多个脚本标签。它被添加到多个页面上,有时一个页面包含另一个页面。
<script src="<%=request.getContextPath()%>/JavaScriptServlet"></script>
在同一页面上存在此多个标记时,我在Internet Explorer上遇到问题。如果它存在则会添加多个令牌以形成。我在Internet Explorer上检查页面时看到它
<FORM method=post name=myForm action=/myAction.do?OWASP_CSRFTOKEN=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI&OWASP_CSRFTOKEN=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI&OWASP_CSRFTOKEN=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI&>
此外,它还使用令牌
添加多个输入<INPUT type=hidden value=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI>
<INPUT type=hidden value=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI>
<INPUT type=hidden value=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI>
有些人有类似的问题吗?
答案 0 :(得分:0)
由于所有令牌都是相同的,因此不应该关注这些页面的运作方式。你应该没事。
合并的唯一方法是给脚本一个ID,并在再次声明之前检查它是否存在。
或者你可以重构所有的JSP,以便在每种情况下某种类型的“基础”jsp确保它只插入一次。
如果您没有看到令牌冲突(来自CSRFGuard的拒绝日志),那么您无需担心。