我想通过不允许我的页面上的任何内容发送 XHR/XMLHttpRequest(或其他?)请求 从管理上防止一整类 XSS 攻击至托管页面的域以外的其他域。那可能吗?
我以为我可以用 Cross-Origin Resource Sharing (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 header ,该请求就会被允许。
但是,我是否可以在 domain-a.com 的页面上设置任何内容来禁止对其他域(例如hackers-r-us.com)的请求,而不管hackers-r-us.com 上的CORS header 如何?
最佳答案
要阻止对另一个域的请求,请使用 CSP — 具体来说, connect-src
CSP 指令。
CSP 指令使用 Content-Security-Policy
指定。 HTTP header ,由浏览器强制执行。指定 connect-src
的 header 的最简单示例指令是:
Content-Security-Policy: connect-src 'self';
如果您在 https://example.com/foo/
上提供文件这样,浏览器会阻止文档中的任何前端代码向其自身以外的任何来源('self'
)发出请求;即,浏览器仅将允许的请求限制为以 https://example.com
开头的 URL。 .关于javascript - 阻止对另一个域的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60406933/