注入表单的多个令牌

时间:2017-02-07 16:03:16

标签: java struts owasp

在我的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&amp;OWASP_CSRFTOKEN=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI&amp;OWASP_CSRFTOKEN=54AE-VJT1-2OZM-4CZV-LMQI-CUEV-BGL1-EQRI&amp;>

此外,它还使用令牌

添加多个输入
<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>

有些人有类似的问题吗?

1 个答案:

答案 0 :(得分:0)

由于所有令牌都是相同的,因此不应该关注这些页面的运作方式。你应该没事。

合并的唯一方法是给脚本一个ID,并在再次声明之前检查它是否存在。

或者你可以重构所有的JSP,以便在每种情况下某种类型的“基础”jsp确保它只插入一次。

如果您没有看到令牌冲突(来自CSRFGuard的拒绝日志),那么您无需担心。