gpt4 book ai didi

http-headers - Access-Control-Allow-Credentials header 到底有什么作用?

转载 作者:行者123 更新时间:2023-12-03 04:24:01 27 4
gpt4 key购买 nike

我试图了解如何使用 CORS,但对 Access-Control-Allow-Credentials header 的作用感到困惑。

The documentation

Indicates whether or not the response to the request can be exposed when the credentials flag is true.

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

谁能解释一下这个 header 设置为 true (与凭证标志设置为 true 一起)实际上会做什么?

最佳答案

默认情况下,CORS 不包含跨域请求的 Cookie。这与 JSON-P 等其他跨域技术不同。 JSON-P 始终在请求中包含 cookie,这种行为可能会导致一类名为 cross-site request forgery 的漏洞。 ,或 CSRF。

为了减少 CORS 中出现 CSRF 漏洞的可能性,CORS 要求服务器和客户端都确认可以在请求中包含 cookie。这样做使 cookies 成为一个主动的决定,而不是在没有任何控制的情况下被动发生的事情。

客户端代码必须将 XMLHttpRequest 上的 withCredentials 属性设置为 true 才能授予权限。

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

您还需要确保your browser isn't blocking third-party cookies如果您希望跨域凭据请求正常工作。

请注意,无论您是发出同源请求还是跨源请求,您都需要保护您的网站免受 CSRF 的影响(尤其是当您的请求包含 Cookie 时)。

关于http-headers - Access-Control-Allow-Credentials header 到底有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com