让我们考虑以下情况:
https://foo.com/index.html
的现代浏览器之一中加载CORS
。index.html
通过https://bar.com/script.js
标签从script
加载JavaScript。script.js
从未被缓存,并且script.js
的内容已更改。 script.js
向XHR
发出https://baz.com
请求https://baz.com
已启用Access-Control-Allow-Credentials: *
,因此XHR
制作的script.js
通过了。https://baz.com
,这是安全隐患。在CORS
之前,XHR
的调用严格遵循同源策略,因此浏览器不允许从https://baz.com
到https://foo.com
的调用。
我想知道https://foo.com/index.html
是否有一种方法可以指定XHR
允许的域名列表,以使上述情况无法实现。
高度赞赏任何指针。
[已更新]
I guess I have found the answer to my question.
感谢您的体贴
最好!
答案 0 :(得分:4)
我想我找到了问题的答案。
使用connect-src
标头Content-Security-Policy
的{{1}}指令可以限制https://foo.com/
,XHR
调用以及fetch
,{{1} },WebSocket
到所需的域。
EventSource
更多信息,请访问https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src
我曾经想删除我的问题,但像我这样的人也可以受益。
答案 1 :(得分:0)
CORS阻止是在服务器端完成的,响应头设置为允许或禁止来自某些来源的请求。
如果result
从c1 c2 c3 c4 c5
74 22 98 223 wq
87 675 784 321 iu
31 92 84 865 wq
获取数据,则bar.com/script.js
应该具有CORS限制。