Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript客户端无法读取Spring设置了XSRF令牌的cookie_Javascript_Spring_Angular_Cookies_Spring Boot - Fatal编程技术网

JavaScript客户端无法读取Spring设置了XSRF令牌的cookie

JavaScript客户端无法读取Spring设置了XSRF令牌的cookie,javascript,spring,angular,cookies,spring-boot,Javascript,Spring,Angular,Cookies,Spring Boot,我正在开发一些公共API。我想向我的项目介绍XSRF安全性。API托管在services.mydomain.com下。我在user.mydomain.com下也有客户机主机。问题是我的JS客户端无法读取服务器设置的cookie。例如,我尝试执行document.cookie,它以空字符串响应。我做错了什么 Cookie具有以下属性(在浏览器端): 以下是我设置cookie的方式: public void configure(HttpSecurity http) throws Exception

我正在开发一些公共API。我想向我的项目介绍XSRF安全性。API托管在
services.mydomain.com
下。我在user.mydomain.com下也有客户机主机。问题是我的JS客户端无法读取服务器设置的cookie。例如,我尝试执行
document.cookie
,它以空字符串响应。我做错了什么

Cookie具有以下属性(在浏览器端):

以下是我设置cookie的方式:

public void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().antMatchers("/rest/**").authenticated().and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
        }

如果您正在为XSRF使用cookie,我认为您应该返回并再次阅读有关XSRF漏洞的内容。整个想法是,它不应该是cookie,而应该是POST的一部分,作为参数或头spring@KlausGroenbaekXSRF令牌作为cookie发送给客户端,客户端将令牌作为头发送回。这是做这件事的标准方法。这是弹簧的原理,这是角度的原理。这里的问题是浏览器无法读取cookie,因此无法发送标头。cookie可以配置为HttpOnly。会话cookie应始终如此,以防止JavaScript读取它们。如果将XSRF令牌作为cookie发送,请确保它不是HttpOnly。当我有一个单页应用程序时,页面通常是一个百里香叶模板,我只需将XSRF令牌分配给一个javascript全局变量,就不需要任何cookie。