我在 JSP、基于 Servlets 2.3 的 web 项目上配置了 CSRFGuard3,我在 RSA、Websphere 应用服务器(在开发环境中)上运行它。我完全按照用户指南中的说明做了。将 CSRFGuard.jar 放在类路径中,csrfgaurd.properties 和 csrfguard.js 放在 WEB-INF 文件夹下。在 Web.xml 中完成 JavaScriptServlet 映射和指南中指定的其他所有其他映射。
我的要求是从这个 CSRF 中添加保护几个页面(不是全部)。因此,在过滤器映射下,我只指定了那些 servlet,并将 JavaScriptServlet 标记保留在各自的.jsp 文件中。比如保护travelpage.jsp&travledetailPage.jsp,其中导航如下homepage.jsp-->travelpage.jsp-->traveldetailPage.jsp
然后我在 homepage.jsp 和 travelpage.jsp jsp 页面上放了以下标签
<script src="JavaScriptServlet"></script>
并且在 web.xml 中做了如下过滤器映射
<filter>
<filter-name>CSRFGuard</filter-name>
<Servlet-name>travePageServlet</servlet-name>
</filter>
<filter>
<filter-name>CSRFGuard</filter-name>
<Servlet-name>travledetailPageServlet</servlet-name>
</filter>
但是当我导航到旅行页面时,CSRF 守卫会抛出错误消息,说“请求中缺少必需的令牌”并重定向错误页面。