本文概述
- Apache HTTP
- Nginx
- WordPress
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之外的所有最新浏览器版本一起使用。
文章图片
我不知道微软何时会允许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才能生效。
文章图片
我试图嵌入该网站, 你可以看到它被阻止了。
允许自己拒绝他人 与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中实现帧祖先。
推荐阅读
- 加密货币和网络安全–它们是敌人吗()
- CORS初学者简介
- Web应用程序的5种常见威胁以及如何避免它们
- 7强大的托管防火墙可保护云基础架构
- 排名前三的Cloud Web Application Firewall(用于阻止网站攻击)(中小型企业)
- 如何保护和加固Cloud VM(Ubuntu和CentOS)()
- spotify web api授权码授予thelinmichael / spotify-web-api-java android
- 如何从Android调用RESTful Web服务()
- 无法通过Google Apps脚本显示授权对话框