【问题标题】:How to "avoid" Content Security Policy?如何“避免”内容安全策略?
【发布时间】:2020-01-25 15:05:38
【问题描述】:

我在一家公司担任外部研究员。他们给了我一个 vpn、rsa 令牌和凭据来访问他们的在线门户网站,其中包含他们项目的网页。我正在构建一个 Flask 应用程序,我想将他们的页面嵌入到框架中,但 CSP 拒绝此操作。目前这个工具在本地运行,我永远不会把它放在他们的生产或测试服务器上。在框架中,出现一条消息而不是页面内容,内容是:

被内容安全策略阻止:此页面有一个内容安全策略阻止它以这种方式加载。 Firefox 阻止此页面以这种方式加载,因为该页面的内容安全策略不允许它。

当控制台消息显示:

Content Security Policy: Ignoring 'x-frame-options' because of 'frame-ancestors' directive

我对 CSP 没有信心,我只是阅读了有关该主题的几页。由于我可以通过浏览器访问他们的页面(就像该工具的所有未来用户一样),是否有任何解决方案可以将这些页面嵌入框架中?

【问题讨论】:

  • 你目前有哪些帧头?
  • 只是基本的
  • 你有 Frame-src: self 吗?
  • 不,正如我所说,自 2 小时前以来我从未见过任何有关 csp 的信息。
  • 没有办法避免。如果他们的文档带有 Content-Security-Policy 标头,并且带有 frame-ancestors 指令,禁止将他们的文档嵌入到其他来源的框架中,那么您无法覆盖它。您可以更改该行为的唯一方法是要求他们更改其 Content-Security-Policy 标头的值,以允许从您的源提供的文档将其文档嵌入框架中。 (另请注意:您在原点进行的 CORS 更改或他们在原点进行的任何 CORS 更改都不会产生任何影响。这与 CORS 无关。)

标签: python jquery html flask content-security-policy


【解决方案1】:

您需要让他们允许您的项目 URL/IP 使用 frame-src,例如:

<meta http-equiv="Content-Security-Policy" content="frame-src 'self' *.YourProjectURL.com;">

【讨论】:

    【解决方案2】:

    CSP 由您自己的浏览器强制执行。有些浏览器插件会为您的浏览器禁用 CSP。例如:

    https://chrome.google.com/webstore/detail/disable-content-security/ieelmcmcagommplceebfedjlakkhpden

    ...尽管在您的情况下,即使您关闭 CSP,您也可能会与 x-frame-options 标头发生冲突

    【讨论】:

    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2015-07-28
    • 2017-09-07
    相关资源
    最近更新 更多