【发布时间】:2019-01-04 19:23:07
【问题描述】:
我正在服务器中实现 CORS 协议,遵循 CORS standard。我的问题是当服务器希望拒绝一个特定的来源时应该如何响应。
我了解在允许 Origin 时如何响应简单和预检请求。但是,对于那些服务器不想允许的 Origin,如何响应呢?我最初的猜测是不返回任何 CORS 标头,这会导致预检请求失败。
标准在第 3.2.3 节中简要提到了这一点,但听起来它描述的是一个根本不希望参与 CORS 的服务器(而不是一个希望参与的服务器在 CORS 中并允许某些 Origins,但不允许其他):
如果服务器不希望参与 CORS 协议, 其对 CORS 或 CORS 预检请求的 HTTP 响应不得 包括上述任何标题。鼓励服务器使用 此类 HTTP 响应中的 403 状态。
这是响应服务器不想允许的 Origin 的正确方法吗?似乎它可能被客户端误解为“此服务器不允许任何跨源请求”(实际上,问题在于这个特定的源,而服务器将允许其他源) .
我知道this question,但它指的是规范的过时版本,答案似乎并不明确。
【问题讨论】:
-
如果我的回答对你有帮助,请采纳。谢谢
标签: cors