gpt4 book ai didi

javascript - 阻止对另一个域的请求?

转载 作者:行者123 更新时间:2023-12-05 00:28:33 26 4
gpt4 key购买 nike

我想通过不允许我的页面上的任何内容发送 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。 .
  • https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src有更多的细节和例子。
  • https://w3c.github.io/webappsec-csp/#directive-connect-src是定义浏览器要求的实际规范部分;该部分也有一些例子。
  • 关于javascript - 阻止对另一个域的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60406933/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com