3

让我们考虑以下场景:

  • 用户https://foo.com/index.html在允许的现代浏览器之一中加载CORS
  • index.htmlhttps://bar.com/script.js通过script标签加载 javascript 。
  • script.js考虑一个从未缓存过且内容script.js已更改 的假设情况。
  • script.jsXHR请求_https://baz.com
  • https://baz.com从而使Access-Control-Allow-Credentials: *这一点得以XHR通过script.js
  • 现在可以将重要的用户信息传递给https://baz.com这是一个安全风险。

在 之前CORSXHR调用严格遵循同源策略,因此浏览器不允许调用https://baz.comfrom 。https://foo.com

我想知道是否有办法https://foo.com/index.html指定XHR允许的域名列表,这样就不可能出现上述情况。

任何指针都受到高度赞赏。

[更新]

我想我已经找到了我的问题的答案。

谢谢你的体贴

最好的!

4

2 回答 2

4

我想我找到了我的问题的答案。

使用Headerconnect-src的指令可以将,调用与,一起限制到所需的域。Content-Security-Policyhttps://foo.com/XHRfetchWebSocketEventSource<a> ping

Content-Security-Policy: connect-src <source> <source>;

更多信息,请访问https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src

我曾经想过删除我的问题,但像我这样的其他人可以从中受益。

于 2019-04-13T23:25:10.177 回答
0

CORS 阻塞是在服务器端完成的,其中响应标头设置为允许来自某些来源的请求。

如果bar.com/script.js从 获取数据baz.com,那么baz.com应该有 CORS 限制。

于 2019-04-13T23:22:58.223 回答