【问题标题】:Content Security Policy: The page's settings blocked the loading of a resource at self?内容安全策略:页面的设置阻止了自己加载资源?
【发布时间】:2016-01-31 21:46:13
【问题描述】:

我在 Tomcat 6 上运行基于 Java 的 Web 应用程序。我的应用程序在 localhost 和端口 9001 上运行。

为了使我的应用程序更安全并降低XSS 攻击的风险,我添加了带有值default-src * 'unsafe-inline' 'unsafe-eval';script-src 的标题Content-Security-Policy '自我'。有了这个,我想允许 Web 应用程序从同一个域加载 JavaScript 文件。

对于其他资源,它会继续以与没有此标头时相同的方式加载。

但我收到以下错误。

Content Security Policy: The page's settings blocked the loading of a resource at self ("script-src http://localhost:9001").

【问题讨论】:

  • 我不确定这是否会导致您看到的错误,但您的 default-src 看起来太满了:“多个源列表值可以用空格分隔 @ 除外987654328@ 和 none 这应该是唯一的值。” (强调,我的)content-security-policy.com/#source_list
  • @kuporific 对不起,我没有得到这个。那么我的情况应该是什么价值?
  • 我在 nodejs 中使用头盔库时遇到了这个问题,看看我在另一篇文章中的回答:stackoverflow.com/a/70054564/11704057

标签: java html security web-applications content-security-policy


【解决方案1】:

内容安全策略标头是可信来源的白名单。

default-src 列表是所有其他 *-src 列表使用的列表。如果它不存在,则默认为default-src: *,这意味着“允许来自任何地方的所有内容”,它不提供任何针对 XSS 的保护。

因此,你应该从

开始
  • default-src none,这样所有内容都被禁止,或者
  • default-src 'self',因此只允许来自您的域的内容。

之后,其他*-src可以根据需要更换。例如,以下内容对除图像之外的所有内容都信任 self,并且仅允许来自 example.com 的图像(但不允许来自 'self'):

default-src 'self'; img-src example.com;

在您的问题中,您指定了default-src * 'unsafe-inline' 'unsafe-eval';,这可能会导致问题,因为* 已经暗示了'unsafe-inline''unsafe-eval'。这就像在说“允许所有内容并允许内联并允许 eval”。

另请注意,通过 IE >= 8 中的 X-Content-Security-Header 支持 CSP。

来源:

【讨论】:

  • 我只尝试了 script-src 'self' 但它没有任何区别,因为我仍然遇到同样的错误
  • 有没有一种方法可以告诉我正在加载资源而与协议无关。我的意思是我想从https://www.google-analytics.com http://www.google-analytics.com 加载javascript 资源。我该怎么做?
【解决方案2】:

试试:

default-src * 'unsafe-inline' 'unsafe-eval';script-src 'self' 'unsafe-inline' 'unsafe-eval'

【讨论】:

  • @haywire 看起来确实是在尝试回答这个问题。是的,它有点薄,但是如果您认为这个答案是错误的或不完整的,您可以投反对票。
  • 请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。如果只是猜测,还建议您不要发布答案。一个好的答案将有一个合理的理由说明它为什么可以解决 OP 的问题。
猜你喜欢
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多