为HTTPS比HTTP安全得多。但是,如果您遇到“HSTS missing from HTTPS server”消息,那么此协议可能会使您的站点处于危险之中。
幸运的是,可以堵住这个严重的安全漏洞。即使您没有遇到此错误消息,任何从HTTP重定向到HTTPS的站点都容易受到此漏洞的攻击。因此,采取积极主动的方法并修复此缺陷仍然是明智之举。
在这篇文章中,我们将探讨“HSTS missing from HTTP server”错误是什么,以及为什么它对任何使用HTTPS重定向的网站来说都是一个如此严重的问题。然后,我们将通过五个简单的步骤向您展示如何解决此问题并阻止黑客。
“HSTS missing from HTTP server”错误简介
为了帮助确保访问者的安全,网站执行HTTPS重定向的情况并不少见。此重定向将访问者从HTTP转发到网站的HTTPS版本。
用户可以在其浏览器的地址栏中明确输入HTTP,或点击指向该站点HTTP版本的链接。在这些情况下,重定向可以防止恶意第三方窃取访问者的数据。
然而,没有什么技术是完美的。如果您的站点确实使用HTTPS重定向,那么您可能容易受到称为安全套接字层 (SSL) 剥离的中间人 (MITM) 攻击。作为此攻击的一部分,黑客将阻止重定向请求并阻止浏览器通过HTTPS协议加载您的站点。结果,访问者将通过HTTP访问您的网站,这使黑客更容易窃取数据。
或者,攻击者可能会拦截重定向并将访问者转发到您网站的克隆版本。此时,黑客可以窃取用户共享的任何数据,包括密码和支付信息。一些黑客还可能试图诱骗访问者下载恶意软件。
黑客也有可能通过不安全的连接窃取会话cookie,这种攻击称为cookie劫持。这些cookie可以包含大量信息,包括用户名、密码,甚至信用卡详细信息。
为了保护您的访问者免受这些攻击,我们建议启用HTTP严格传输安全 (HSTS)。此协议强制浏览器忽略任何直接请求并通过HTTPS加载您的站点。
HSTS协议(以及您可能想要使用它的原因)
HSTS是一个服务器指令和网络安全策略。由Internet工程任务组 (IETF) 在RFC 6797中指定,HSTS为用户代理和Web浏览器应如何处理通过HTTPS运行的站点的连接设置了规定。
有时,IT安全扫描可能会报告您的站点“缺少HSTS”或“HTTP严格传输安全”标头。如果您遇到此错误,则说明您的网站未使用HSTS,这意味着您的HTTPS重定向可能会使您的访问者面临风险。
这被归类为中等风险漏洞。然而,它非常普遍,对攻击者来说是唾手可得的成果。如果您遇到此错误,那么解决它至关重要。
通过将HSTS安全标头添加到您的服务器,您可以强制您的站点加载HTTPS协议。这有助于保护您的网站免受cookie劫持和协议攻击。由于您可能会从加载过程中删除重定向,因此您的网站也可能加载得更快。
您可能没有遇到此错误,但仍然担心HSTS。如果您不确定是否启用了HSTS,您可以使用诸如Security Headers之类的工具扫描您的站点。只需输入您网站的URL,然后单击Scan。
使用Security Headers扫描您的站点
安全标头将检查您的站点并在标头部分显示所有应用的标头。如果Strict-Transport-Security出现,则您的站点受到保护。但是,如果未列出此标头,那么我们还有一些工作要做。
如何修复“HSTS Missing From HTTP Server”错误
对于黑客来说,HSTS漏洞是窃取数据或诱骗访问者执行危险操作的绝佳机会。以下是启用HSTS政策并确保您的网站安全的方法。
步骤 1:创建手动备份
启用HSTS政策意味着您的网站发生了重大变化。因此,我们建议在继续之前创建按需备份。这使您可以选择在启用HSTS时遇到任何问题的情况下恢复您的站点。
在宝塔面板,您可以设置WordPress备份计划。但是,在进行任何重大更改之前创建手动备份仍然是明智之举。要创建此安全网,请登录您的宝塔仪表盘。然后,单击左侧的“网站”菜单,找到你需要备份的网站对应的备份操作,然后在弹窗中点击“备份站点”。
在宝塔面板执行网站备案操作
接下来,进行网站数据库备份,选择数据库菜单项。找到你需要备份的站点对应的数据库,点击备份列对应的操作项,然后单击弹窗的备份数据库按钮。
备份网站数据库
这样,您即对网站完成了网站文件及数据库的备份操作。
步骤 2:设置HTTP到HTTPS重定向
在启用HSTS策略之前,您需要将SSL证书部署到您的网站。在宝塔面板,你可以直接申请部署证书。除非您特别需要自定义证书,否则您不必担心手动配置SSL。
点击宝塔面板左侧的“网站”菜单项,然后找到你需要配置SSL的网站,点击操作项“设置”,点击弹窗左侧的“SSL”,然后根据需要申请及部署SSL,其中宝塔SSL和Let’s Encrypt的证书均免费,前者需要实名认证。
然后你必须开启右上角的强制HTTPS,才可以实现将HTTP重定向至HTTPS。
请注意,如果您使用任何第三方代理或设置任何自定义HTTPS规则,那么强制HTTPS可能会导致错误或其他奇怪的行为。
如果您的Web服务器正在运行Nginx,那么您可以将所有HTTP流量重定向到HTTPS。只需将以下代码添加到您的Nginx配置文件中:
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
步骤 3:添加HSTS标头
您可以将各种类型的指令和安全级别应用于HSTS标头。但是,我们建议添加max-age指令,因为它定义了Web服务器应通过HTTPS提供的时间(以秒为单位)。这会阻止访问只能通过HTTP提供的页面或子域。
如果您使用的是Apache服务器,则需要打开您的虚拟主机文件。然后,您可以添加以下内容:
Header always set Strict-Transport-Security max-age=31536000
如果您使用的是NG服务器,那么您可以将以下内容添加到您的Nginx配置文件中:
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
与往常一样,我们可以为您完成所有艰苦的工作。只需打开支持票证,请求我们将HSTS标头添加到您的站点。我们的团队很乐意对您的Nginx文件进行此更改。
步骤 4:将您的网站提交到HSTS预加载列表
HSTS政策有一个主要缺点。浏览器必须至少遇到一次HSTS标头,然后才能将其用于将来的访问。这意味着您的受众将需要至少完成一次HTTP到HTTPS 重定向过程。在此期间,它们将容易受到基于协议的攻击。
为了弥补这个安全漏洞,谷歌创建了HSTS预加载列表。这列出了所有支持HSTS的网站,然后将其硬编码到Chrome中。通过将您的站点添加到此列表中,访问者将不再需要完成初始HTTPS重定向。
大多数主要的互联网浏览器都有自己的HSTS预加载列表,这些列表基于Chrome的列表。要获得此列表的资格,您的网站必须符合提交标准。好消息是我们已经涵盖了所有这些要求,因此您可以继续将您的网站提交到HSTS预加载列表。
一旦您进入此列表,一些搜索引擎优化 (SEO) 工具可能会警告您有关307重定向。当有人试图通过不安全的HTTP协议访问您的站点时,就会发生这些重定向。这会触发307重定向而不是永久301重定向。如果您对此感到担忧,可以使用httpstatus扫描您的站点并验证是否发生 301 重定向。
步骤 5. 验证您的Strict-Transport-Security标头
添加HSTS标头后,最好测试它是否正常运行。您可以使用浏览器的内置 Web 工具执行此检查。
这些步骤将根据您选择的Web浏览器而有所不同。要执行此操作,请检查Google Chrome DevTools,导航到您要测试的网页。然后,您可以单击任何空白区域,然后选择检查。
闪电博主页
在随后的面板中,选择Network选项卡。然后,您可以检查Headers部分,该部分应包含以下内容:
strict-transport-security: max-age=31536000
或者,您可以使用安全标头工具扫描您的站点。和以前一样,只需输入您网站的URL,然后单击Scan。这将返回一个安全报告,其中应包含一个strict-transport-security标签。如果此标记存在,那么您的HSTS标头现在已正确设置,并且您已成功关闭HTTPS重定向漏洞。
小结
从HTTP重定向到HTTPS是一种安全最佳实践。但是,没有任何技术是完美的,这种重定向可能会使您的网站更容易受到SSL攻击。
考虑到这一点,让我们回顾一下如何修复“HSTS Missing From HTTPS Server”错误:
- 创建站点的手动备份。
- 设置HTTP到HTTPS重定向。
- 添加HSTS标头。
- 将您的网站提交到HSTS预加载列表。
- 验证您的strict-transport-security标头。
评论留言