Access-Control-Allow-Credentials头做了什么?

我想了解如何使用CORS,并且对Access-Control-Allow-Credentials头做了什么感到困惑。

文件说

指示凭证标志为true时是否可以显示对请求的响应。

但我不明白什么是“暴露”的意思。

任何人都可以解释这个头被设置为true(与设置为true的凭据标志一起)实际上是什么?

默认情况下,CORS不包括跨源请求的cookie。 这与JSON-P等其他跨源技术不同。 JSON-P总是包含请求的cookie,这种行为可能导致一类称为跨站点请求伪造 (CSRF)的漏洞。

为了减lessCORS中CSRF漏洞的可能性,CORS要求服务器和客户端都确认在请求中包含cookie是正确的。 这样做会使Cookie成为一个积极的决定,而不是被动地发生而没有任何控制的事情。

客户端代码必须XMLHttpRequestwithCredentials属性设置为true才能授予权限。

但是,这个标题是不够的。 服务器必须使用Access-Control-Allow-Credentials标题进行响应。 响应此标头为true意味着服务器允许将Cookie(或其他用户凭据)包含在跨源请求中。

您还需要确保您的浏览器不阻止第三方cookie,如果您想要跨源证书请求工作。

请注意,无论您是在制作同源请求还是跨域请求,都需要保护您的网站免受CSRF攻击(尤其是在您的请求中包含Cookie的情况下)。