apache - 在 Apache Web 服务器中设置内容安全策略

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

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

“缺少内容安全策略 HTTP 响应 header ”

我们做了一些研究,发现了如何在 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>

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

最佳答案

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

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

CSP 应该比这更仔细,您需要仔细评估应用程序加载/包含的所有内容。那么在仅报告模式下实现策略是明智的,在这种模式下您可以看到可能违反策略的违规行为。通过这种方式,您可以在不破坏用户功能的情况下发现问题。

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

如果您确实选择了它并执行该政策

如果您不依赖来自这些域的资源,则可以安全地省略它们。它们被留在那里作为示例,因为很多站点都包含来自这些 CDN 的内容。

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

您可以尝试以下操作来选中该框(警告这没有任何作用):

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

如果您想要一种简单的方法来使用它,您可以尝试使用 CSP Generator:
https://www.cspisawesome.com/content_security_policies

关于apache - 在 Apache Web 服务器中设置内容安全策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62105213/

相关文章:

javascript - 事件内容安全策略 (CSP) 和 Rails :back link

python - 为查询集的下标元素赋值不起作用

python - 在 Apache 服务器上使用 Sudo 权限运行 Python CGI 脚本

c++ - 配置 Eclipse C++ 以构建 Apache HTTP 模块

asp.net - ASP WebApi - 如何处理潜在的 XSS 攻击

javascript - MapBox GL CSP 版本不渲染图 block

php - 如何将不同的主机条目放在同一个 linux 服务器上,用于不同的虚拟主机?

security - HTML 编码可以防止各种 XSS 攻击吗?

javascript - Django 中不安全的用户输入文本有哪些危险?

javascript - 如何使用元标记放宽内容安全策略