Java 将REST服务的CSRF令牌作为Http响应头包含是否安全?

Java 将REST服务的CSRF令牌作为Http响应头包含是否安全?,java,rest,spring-security,csrf,owasp,Java,Rest,Spring Security,Csrf,Owasp,我有一组受CSRF保护的REST服务,它们使用类似于OWASP的同步器令牌模式()的东西。 *REST是使用Java和JAX-RS实现的 *安全性是使用Spring Security CSRF令牌实现的 *HTTP PUT、POST和DELETE受保护 在我的Web应用程序启动时,我在HTML页面中写入正确的CSRF令牌,然后应用程序在每个请求的请求头中包含作为“X-CSRF-HEADER”的令牌 我还有直接访问URL的客户端(例如curl命令行和其他客户端) 备用客户端需要以某种方式获取CSR

我有一组受CSRF保护的REST服务,它们使用类似于OWASP的同步器令牌模式()的东西。 *REST是使用Java和JAX-RS实现的 *安全性是使用Spring Security CSRF令牌实现的 *HTTP PUT、POST和DELETE受保护

在我的Web应用程序启动时,我在HTML页面中写入正确的CSRF令牌,然后应用程序在每个请求的请求头中包含作为“X-CSRF-HEADER”的令牌

我还有直接访问URL的客户端(例如curl命令行和其他客户端)

备用客户端需要以某种方式获取CSRF令牌(当然,在验证之后)

将令牌作为GET请求的HTTP响应头包含是否安全?如果是这样,那么我可以将它包含在响应头中,客户端可以读取它并将其包含在未来的请求头中


安全吗

通常认为在响应头中包含CSRF令牌是安全的。就像请求的主体一样,响应头在SSL响应中加密,不能跨域访问。默认情况下,CSRF令牌没有呈现给响应的原因是为了确保我们延迟创建会话,直到有必要为止。有关详细信息,请参见

通常认为在响应头中包含CSRF令牌是安全的。就像请求的主体一样,响应头在SSL响应中加密,不能跨域访问。默认情况下,CSRF令牌没有呈现给响应的原因是为了确保我们延迟创建会话,直到有必要为止。有关详细信息,请参见

为什么它会比在响应正文中发送的安全性更低或更高?@JBNizet我不认为这有什么不同。。。但是我害怕我不知道的东西!也许某个地方有HTTP头攻击。最后,一切都在进行中。如果使用SSL,则所有内容都将加密。如果不使用,则不会加密任何内容。为什么它会比在响应正文中发送它的安全性更低或更高?@JBNizet我不认为这有什么不同。。。但是我害怕我不知道的东西!也许某个地方有HTTP头攻击。最后,一切都在进行中。如果使用SSL,则所有内容都将加密。如果不使用,则不会加密任何内容。