内容安全策略 (CSP) 未在 Angular 中实现

时间:2021-03-18 03:33:44

标签: angular security content-security-policy

我已将如下 CSP 添加到 <head> 标记内的 index.html 文件中。

<meta
      http-equiv="Content-Security-Policy"
      content="
    script-src 'self';
    style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; 
    font-src 'self' https://fonts.gstatic.com;
    img-src 'self' data: https://www.gstatic.com/;"
    />

注意:我使用 style-src 'unsafe-inline' 是因为我使用了一些角材料组件,而没有 'unsafe-inline',角材料组件的样式会中断。

但是,我的安全团队仍然抱怨 CSP 没有实现,根据他们的说法,以下路径没有 CSP 标头。

https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/card-details-initial
https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/mysql/main.3550f319f28ebd698940.js
https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/oauth/styles.2b86afa3c6ac02c17f35.css
https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/mysql/assets/images/app_logo/
https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/PMA/main.3550f319f28ebd698940.js
...

这是部署在 AWS 中的。有人知道此问题的解决方法吗?

2 个答案:

答案 0 :(得分:2)

请尝试在您的 head 标签中添加这一行并删除旧的

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

答案 1 :(得分:0)

<块引用>

有人知道这个问题的解决方法吗?

安全团队不仅应展示漏洞,还应提供有关如何消除漏洞的建议。
因此,请询问您的安全团队几个问题:

  1. 他们想用 *.css*.js 文件(text/csstext/javascript MIME 类型)实现哪些 CSP 规则分别)?

  2. 您的网络应用程序使用 <meta> 标签来交付 CSP。一些 SPA 根本无法使用 CSP HTTP 标头。
    问题是:您的安全团队认为如何在 CSS/JS 文件中使用 <meta> 标签?

  3. 要求他们通过 CSS/JS 文件提供任何漏洞示例,这些示例可以通过文件随附的 CSP 标头解决。

根据回答问题的结果,您可以决定解散您的安全团队或重新培训。

一些“安全团队”的问题是他们知道如何使用 WAS 扫描器,但他们不知道如何解释其结果。因此,在收到带有“脆弱”网址的消息“QID: 150206 Content Security Policy Not Implemented”后,他们不知道该怎么做。

<块引用>

如果您是网络应用的负责人,请按照check-list做什么:

  1. 从安全团队获取原始扫描报告。
  2. 检查易受攻击的 URls 的状态代码 - 不存在/错误的页面 (403/404/5xxx/etc) 易受 XSS 攻击。如果可能,为其他人修复此类错误页面 - 检查服务器是否返回带有 CSP 标头的诊断 HTML 页面“页面未找到”/“页面不存在”。
  3. 检查易受攻击的 URL 的 Content-Type 标头。 CSP 对 text/csstext/javasctirt MIME 类型的文件没用(只有 Firefox 非标准地支持用于 Workers 的脚本文件的 CSP)。
  4. 承担责任并最终决定应该修复哪些扫描仪警告,忽略哪些。

注意 1。如果 card-details-initial 中的 https://XXXXXXXXXXXXXXXXXXXXXXXXXXX/card-details-initial 表示“银行卡”或一些敏感的用户数据 - 请仔细检查所有步骤。

注意 2。 避免同时通过服务器配置和应用程序(通过 HTTP 标头或元标记)发布 Content-Security-Policy 标头。同时使用两个 CSP 会使生成的 CSP 非常具有限制性和不可预测性。