【问题标题】:Prevent request to another domain?阻止对另一个域的请求?
【发布时间】:2020-06-09 21:56:06
【问题描述】:

我想通过不允许我的页面上的任何内容将 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 标头,该请求就会被允许。

但是我可以在 domain-a.com 的页面上设置什么来禁止对其他域(例如 hackers-r-us.com)的请求,而不管hackers-r-us.com 上的 CORS 标头如何?

【问题讨论】:

    标签: xmlhttprequest cors xss


    【解决方案1】:

    Content Security Policy (CSP) — 特别是 connect-src CSP 指令。

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

    Content-Security-Policy: connect-src 'self';
    

    如果您在https://example.com/foo/ 提供文档,浏览器会阻止文档中的任何前端代码向其自身以外的任何来源('self')发出请求;即,浏览器会将允许的请求限制为仅以 https://example.com 开头的 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 2019-11-04
      • 2017-02-06
      • 2021-06-26
      • 2014-10-13
      相关资源
      最近更新 更多