Javascript 在发起/源位置阻止跨域XHR或fetch调用 让我们考虑下面的场景: 用户加载https://foo.com/index.html在允许CORS的一种现代浏览器中 index.html从https://bar.com/script.js通过脚本标记 考虑这样一种假设情况,即从未缓存此script.js,并且script.js的内容已更改 script.js向https://baz.com https://baz.com已启用访问控制允许凭据:因此script.js制作的XHR将通过 重要的用户信息现在可以传递到https://baz.com这是一种安全风险
在Javascript 在发起/源位置阻止跨域XHR或fetch调用 让我们考虑下面的场景: 用户加载https://foo.com/index.html在允许CORS的一种现代浏览器中 index.html从https://bar.com/script.js通过脚本标记 考虑这样一种假设情况,即从未缓存此script.js,并且script.js的内容已更改 script.js向https://baz.com https://baz.com已启用访问控制允许凭据:因此script.js制作的XHR将通过 重要的用户信息现在可以传递到https://baz.com这是一种安全风险,javascript,xmlhttprequest,cross-domain,fetch-api,Javascript,Xmlhttprequest,Cross Domain,Fetch Api,在CORS之前,XHR调用严格遵循同一原产地政策,因此调用https://baz.comfromhttps://foo.com浏览器不允许使用 我想知道是否有办法https://foo.com/index.html指定XHR允许的域名列表,这样就不可能出现上述情况 非常感谢您的指点 [更新] 感谢您考虑周到CORS阻塞是在服务器端完成的,在服务器端,响应头被设置为允许来自特定来源的请求或不允许来自特定来源的请求 如果bar.com/script.js从baz.com获取数据,那么baz.com
CORS
之前,XHR
调用严格遵循同一原产地政策,因此调用https://baz.com
fromhttps://foo.com浏览器不允许使用
我想知道是否有办法https://foo.com/index.html
指定XHR
允许的域名列表,这样就不可能出现上述情况
非常感谢您的指点
[更新]
感谢您考虑周到CORS阻塞是在服务器端完成的,在服务器端,响应头被设置为允许来自特定来源的请求或不允许来自特定来源的请求
如果
bar.com/script.js
从baz.com
获取数据,那么baz.com
应该有CORS限制。我想我找到了问题的答案
使用Content Security Policy的connectsrc
指令Headerhttps://foo.com/
可以限制XHR
,fetch
调用以及WebSocket
,EventSource
,
我曾经想过删除我的问题,但像我这样的人可以从中受益。我打算发布一个关于如何重载XMLHttpRequest和fetch()来创建拦截器的答案……这要简单得多!
Content-Security-Policy: connect-src <source> <source>;