4

在OWASP 网站CORS 备忘单上看到这种矛盾,我感到很困惑:

  • 使用 Access-Control-Allow-Credentials: true 响应标头时要特别小心。将允许的 Origin 列入白名单,并且永远不要在 Access-Control-Allow-Origin 中回显 Origin 请求标头。
  • 在 Access-Control-Allow-Origin 标头中仅允许选定的受信任域。首选将域列入白名单而不是列入黑名单或允许任何域(通过 * 通配符或回显 Origin 标头内容)。

那里有很多信息表明您应该回显 Origin 请求标头,因此除了使用 * 通配符的公共 API 之外,我无法想象不这样做的原因。我的观点是,如果您按照此处的建议将源域的域列入白名单,那么您可以防止欺骗 Origin 标头。我错过了什么吗?这只是那个备忘单上的错字吗?

4

1 回答 1

5

我认为第二条建议措辞不佳。他们都说你应该避免回显Origin标题。通过“回显”,我认为他们的意思是盲目地将标头的值放在OriginAccess-Control-Allow-Origin头中,没有任何中间检查(例如白名单)。另请注意,这些是建议而非绝对规则,应从您的需求角度进行解释。API 越开放和公开,*值就越容易被接受。

于 2013-08-21T19:59:49.057 回答