【问题标题】:Setting Content Security Policy in Apache web server在 Apache Web 服务器中设置内容安全策略
【发布时间】:2020-05-30 16:11:56
【问题描述】:

我们进行了一次渗透测试,其中一项发现是:

“缺少 Content-Security-Policy HTTP 响应标头”

我们做了一些研究,发现了如何在 web 服务器 httpd.conf 文件中进行设置。问题是我们不知道具体包括什么。我们的网络应用程序对外部网站(如 googleapis)或任何 CDN 或网络上的外部图像没有任何依赖关系。所以,我们真的不确定该放什么。

以下是一个示例,但它依赖于一些谷歌链接。

<Location "/CompanyXYZ/">
Header always append X-Frame-Options deny
Header always set Content-Security-Policy "default-src 'self' data: blob: *.google.com *.gstatic.com; style-src 'self' 'unsafe-inline' *.google.com *.googleapis.com; script-src 'self' 'unsafe-inline' *.googleapis.com *.google.com;"
</Location>

如果我们没有这些依赖项怎么办?我们应该如何设置?

【问题讨论】:

    标签: apache xss content-security-policy penetration-testing


    【解决方案1】:

    这里要澄清的一点是,政策对谷歌链接没有“依赖关系”。这是一项允许用户的网络浏览器在加载您的应用程序时从这些域加载内容的策略。 CSP 策略拒绝用户的浏览器权限来加载任何其他内容。

    不应将缺少 CSP 策略视为漏洞。我希望这被评为“注意”或风险非常低的问题。实施 CSP 是您需要测试的事情,因为您可以轻松地破坏您的站点/应用程序上的功能。我只是确保您不会为了满足供应商而仓促行事。

    CSP 应该比这更谨慎,您需要仔细评估您的应用加载/包含的所有内容。 那么谨慎的做法是在仅报告模式下实施政策,在这种模式下您可以看到可能违反政策的违规行为。通过这种方式,您可以发现问题,而不会有破坏用户功能的风险。

    这是它自己的蠕虫罐,因为您需要一个报告侦听器(网上有可用的平台)。

    如果您确实选择即兴发挥并执行该政策

    如果您不依赖这些域中的资源,您可以放心地忽略它们。由于有很多网站包含来自这些 CDN 的内容,因此将它们留在那里作为示例。

    最后一个选择是只包含一个非常小的策略,基本上什么都不做。大多数渗透测试供应商只是检查一个框以查看是否存在。

    您可以尝试以下方法来选中该框(警告这不起作用):

    Content-Security-Policy: "default-src *"
    

    如果您想以一种简单的方式使用它,可以尝试使用 CSP 生成器: https://www.cspisawesome.com/content_security_policies

    【讨论】:

    • cspi Awesome 的 URL 似乎消失了。
    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2023-04-08
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多