我有两个不同的网络应用程序。服务 Web 应用程序定义了 REST 服务。客户端 Web 应用程序具有 JSP 页面,这些页面使用 Ajax 调用 REST 服务以获取数据并在 UI 中显示。我想为我的 REST 服务实现 OWASP CSRF Gaurd 3。
如何在客户端应用程序中获取 CSRF 令牌值,以便它可以将令牌值作为标头传递,其余服务得到验证和执行?
让我清楚地告诉我我的架构。服务项目 - 这是一个定义了 REST Web 服务的 spring/JPA 项目。该项目需要使用 CSRF 进行保护。它的 Web 上下文是 /Services。所以 url 可能在 localhost 中http://localhost:8080/Services/RESTSERVICE
客户端项目 - 这是一个带有 jsp/html 网页的 JSP/Servlet 项目。该项目对服务项目的 REST 服务进行 AJAX 调用,以获取数据并在 UI 中显示。网址就像http://localhost:8080/Client/index.jsp
现在我怀疑如果我在服务项目中实现 CSRF Guard,客户端项目需要 CSRF 令牌来调用受保护的 REST 服务。如何将此令牌值获取到客户端项目 jsp 页面中?
我尝试将 cookie 添加到其余服务的响应中,但客户端 javascript 无法读取它,因此使用 cookie 我无法将令牌共享给客户端。还有其他方法吗?任何帮助将不胜感激...