个性化阅读
专注于IT技术分析

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

点击下载

本文概述

通过实施CSP(内容安全策略)标头来保护你的网站免遭点击劫持攻击

CSP是OWASP十大安全标头之一, 经常被安全专家或工具推荐来实现它。有许多选项可用于构建策略以强制实施你要如何公开Web资源。

与X-Frame-Options标头相比, CSP版本2中引入的称为frame-ancestors的指令之一提供了更大的灵活性。 frame-ancestors与X-Frame-Options的工作方式相同, 以允许或禁止使用iframe, frame, object, embed和applet元素嵌入资源。

我认为, 当CSP与所有主要浏览器完全兼容时, X-Frame-Options将在不久的将来过时。在我撰写本文时, CSP框架祖先可以与IE之外的所有最新浏览器版本一起使用。

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

我不知道微软何时会允许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框架祖先?4

我试图嵌入该网站, 你可以看到它被阻止了。

允许自己拒绝他人

与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中实现帧祖先。

赞(0)
未经允许不得转载:srcmini » 如何在Apache,Nginx和WordPress中实现CSP框架祖先?

评论 抢沙发

评论前必须登录!