如何在Apache,Nginx和WordPress中实现CSP框架祖先()

本文概述

  • Apache HTTP
  • Nginx
  • WordPress
通过实施CSP(内容安全策略)标头来保护你的网站免遭点击劫持攻击
CSP是OWASP十大安全标头之一, 经常被安全专家或工具推荐来实现它。有许多选项可用于构建策略以强制实施你要如何公开Web资源。
与X-Frame-Options标头相比, CSP版本2中引入的称为frame-ancestors的指令之一提供了更大的灵活性。 frame-ancestors与X-Frame-Options的工作方式相同, 以允许或禁止使用iframe, frame, object, embed和applet元素嵌入资源。
【如何在Apache,Nginx和WordPress中实现CSP框架祖先()】我认为, 当CSP与所有主要浏览器完全兼容时, X-Frame-Options将在不久的将来过时。在我撰写本文时, CSP框架祖先可以与IE之外的所有最新浏览器版本一起使用。
如何在Apache,Nginx和WordPress中实现CSP框架祖先()

文章图片
我不知道微软何时会允许IE支持。你始终可以在” 我可以使用” 网站上检查浏览器的兼容性。
让我们看一下以下实现过程。
Apache HTTP mod_headers是在Apache中注入所有标头的前提条件。根据操作系统和版本, 但是如果你使用的是Ubuntu和Apache 2.4, 则可以使用a2enmod标头将其启用。
[email  protected]:/etc/apache2# a2enmod headers Enabling module headers. To activate the new configuration, you need to run: systemctl restart apache2 [email  protected]:/etc/apache2# systemctl restart apache2 [email  protected]:/etc/apache2#

注意:你可以在httpd.conf文件或正在使用的任何有效配置文件中进行所有配置。
全部拒绝 类似于X-Frame-Options DENY。如果你不希望嵌入任何网站(包括自己的网站), 请添加以下内容。
Header set Content-Security-Policy "frame-ancestors none; "

保存文件并重新启动Apache HTTP才能生效。
如何在Apache,Nginx和WordPress中实现CSP框架祖先()

文章图片
我试图嵌入该网站, 你可以看到它被阻止了。
允许自己拒绝他人 与X-Frame-Options SAMEORIGIN相似, 你可以添加以下内容。
Header set Content-Security-Policy "frame-ancestors 'self'; "

允许来自自己和多个域 X-Frame-Options没有允许来自多个域的选项。感谢CSP, 你可以执行以下操作。
Header set Content-Security-Policy "frame-ancestors 'self' geekflare.com gf.dev geekflare.dev; "

上面的内容允许从self, geekflare.com, gf.dev, geekflare.dev中嵌入内容。与你一起更改这些域。
Nginx 除了添加标头的方式外, 概念和指令与Apache HTTP部分中的解释相同。 Nginx中的标头应添加到相应配置文件中的服务器块下。
全部拒绝
add_header Content-Security-Policy "frame-ancestors none; ";

拒绝所有但不是自我
add_header Content-Security-Policy "frame-ancestors 'self'; ";

允许来自多个域
add_header Content-Security-Policy "frame-ancestors yoursite.com example.com; ";

上面的示例将允许将内容嵌入到yoursite.com和example.come上。进行更改后, 请不要忘记重启Nginx服务器以测试策略。
WordPress 这取决于你如何托管WordPress。
如果像云或VPS一样自托管, 则你可能正在使用Web服务器, 例如Apache或Nginx。如果是这样, 那么你可以按照上面提到的在Web服务器而不是WordPress中实现。但是, 如果你在共享主机上, 或者无权修改Web服务器, 则可以利用插件。
要在WordPress中实施CSP, 你可以使用Content Security Policy Pro插件。
验证
完成实施后, 你可以使用浏览器内置的开发人员工具或安全标头测试工具。
总结
CSP是防止Web漏洞的功能强大且安全的标头之一。我希望以上说明可以指导你如何在Apache和Nginx中实现帧祖先。

    推荐阅读