修复网站缺失的Referrer-Policy安全头指南

本文详细介绍了Referrer-Policy安全头的作用、配置方法及安全意义,通过Apache服务器配置实例指导如何设置no-referrer-when-downgrade策略,防止URL信息泄露,提升网站安全性。

如何修复网站缺失的Referrer-Policy

Referrer-Policy是什么?

Referrer-Policy是一种安全头,可以(且应该)包含在网站服务器与客户端之间的通信中。该策略告诉Web浏览器在用户点击指向其他页面或网站的链接时,如何处理发送给网站的反引用信息。

Referrer-Policy可配置为让浏览器不向目标站点发送任何URL信息、部分信息或完整URL路径。设置策略是良好的安全实践。策略可通过多种方式设置,包括在网站代码中(PHP等)。下文我们将通过在Apache配置中设置Referrer-Policy头来实现。

检查Referrer-Policy是否启用

如果您之前未听说过这些头信息,很可能没有启用它们。它们不是自动启用的,尽管可能已包含在您安装的Web应用程序中(如WordPress、Joomla等)。快速检查的方法是访问www.securityheaders.io并扫描您的网站。您也可以在FireFox的开发者控制台中检查。

确定您的反引用需求

当用户通过指向其他地方的链接离开您的网站时,让目标服务器知道用户来自何处(您的网站)可能有用。也可能更合适不向他们透露任何关于您网站的信息。发送的反引用头通常是一个字符串,包含用户点击指向目标的链接所在页面的URL。有多种方式可以配置是否以及发送哪些信息,但需要注意的是,反引用可能对于正确配置网络广告、分析工具和一些认证平台是必要的。您还可以确保HTTPS URL不会泄漏到HTTP头中(从而避免未加密的网站路径信息在互联网上泄漏)。

在我们的案例中,我们发现“no-referrer-when-downgrade”策略符合我们的需求。这将确保如果用户点击指向HTTP网站(不安全)的链接,Web浏览器不会发布我们的HTTPS URL路径(这将是一个安全数据泄漏,因为它未加密地披露了我们的URL路径方案)。

具体的策略选项可以在本文底部的链接中找到。

在Apache中创建和配置Referrer-Policy

我们需要添加的头将在httpd.conf文件中添加(或者apache.conf等)。

在httpd.conf中,找到您的VirtualHost部分。

接下来,找到您的部分。如果不存在,您需要创建它并添加我们的特定头。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<VirtualServer>

~这里是一些重要内容~

    <IfModule headers_module>
    RequestHeader set X-HTTPS 1
          Header set Referrer-Policy "no-referrer-when-downgrade"
       </IfModule>

~更多重要内容~

</VirtualServer>

重启Apache

1
sudo service apache restart

测试更改

设置内容安全策略头

Scott Helme进行了大量研究,并帮助Web开发人员全面实施Referrer-Policy。以下是Scott整理的一些优秀内容,以协助正确实施。

新的安全头:Referrer Policy – 链接:https://scotthelme.co.uk/a-new-security-header-referrer-policy/ SecurityHeaders.io – 链接:https://www.securityheaders.io

相关阅读

参见第1部分:如何配置内容安全策略

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计