gpt4 book ai didi

cors - 服务器应该如何使用它希望拒绝的 Origin 响应 CORS 请求?

转载 作者:行者123 更新时间:2023-12-04 13:44:27 25 4
gpt4 key购买 nike

我正在服务器中实现 CORS 协议(protocol),遵循 CORS standard .我的问题是当服务器希望拒绝特定的 Origin 时,它应该如何响应。

我了解在允许 Origin 时如何响应简单和预检请求。但是如何响应那些服务器不想允许的 Origins 呢?我最初的猜测只是不返回任何 CORS header ,这会根据需要导致预检请求失败。

该标准在第 3.2.3 节中简要提到了这一点,但它听起来像是在描述一个根本不想参与 CORS 的服务器(而不是希望参与 CORS 并允许某些 Origins 而不允许其他人的服务器) ):

In case a server does not wish to participate in the CORS protocol, its HTTP response to the CORS or CORS-preflight request must not include any of the above headers. The server is encouraged to use the 403 status in such HTTP responses.



这是响应服务器不想允许的 Origins 的正确方法吗?似乎客户端可能会将其误解为“此服务器不允许任何跨源请求”(实际上,问题出在此特定源上,而服务器将允许其他源)。

我知道 this question ,但它指的是规范的过时版本,答案似乎并不明确。

最佳答案

Is [a 403 error status] the correct way to respond to Origins that the server does not want to allow? It seems it could be misinterpreted by the client as "this server won't allow any cross origin requests" (when in reality, the problem is with this particular Origin, and the server would allow other Origins).



发送请求脚本可能会误解的错误代码并没有错。这是 CORS 设计的一部分。为避免混淆浏览器,请务必发送 header Vary: Origin与响应。这告诉客户端的浏览器,如果具有不同来源的脚本尝试访问相同的资源,它应该再次检查而不是查找缓存的 CORS 参数。见 here进行一些讨论。

关于cors - 服务器应该如何使用它希望拒绝的 Origin 响应 CORS 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51561839/

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