阻止对另一个域的请求?

Pet*_*rch 4 xss xmlhttprequest cors

我想通过不允许我的页面上的任何内容向托管页面的域以外的其他域发送 XHR/XMLHttpRequest(或其他?)请求在管理上阻止一整类 XSS 攻击。那可能吗?

我以为我可以通过跨域资源共享 (CORS)做到这一点,但似乎我错了。如果托管在 domain-a.com 上的页面尝试向 domain-b.com 发出 XHR 请求,则可以在 domain-b.com页面上使用 CORS来控制是否允许这样做。

因此,如果 domain-a.com 页面上的某些内容尝试向hackers-r-us.com 发出XHR 请求,该请求将被允许,只要hackers-r-us.com 设置了适当的CORS 标头。

但是,无论hackers-r-us.com 上的CORS 标头如何,我是否可以在domain-a.com 的页面上设置任何内容来禁止对其他域(例如hackers-r-us.com)的请求?

sid*_*ker 5

内容安全策略 (CSP) — 特别是connect-srcCSP 指令。

CSP 指令使用Content-Security-PolicyHTTP 标头指定,并由浏览器强制执行。指定connect-src指令的标头的最简单示例是:

Content-Security-Policy: connect-src 'self';
Run Code Online (Sandbox Code Playgroud)

如果您使用它提供文档https://example.com/foo/,浏览器将阻止文档中的任何前端 JavaScript 向除其自身 ( 'self')以外的任何来源的 URL 发出请求;也就是说,浏览器会将允许的请求限制为仅以 开头的 URL https://example.com