Jensfrank
Jensfrank
Published on 2022-11-15 / 1 Visits
0

尝试解决网站安全分预加载HSTS

网站安全分预加载HSTS,这个问题困扰挺长时间,测试了不少检测工具,安全分一直很低,今天想折腾把网站速度提升下,因为用着sitegroud有待Cloudflarecdn的,不过必须打开www比较烦人。最后换了插件完美解决,测试结果A+。 那就试试吧,不过没折腾好,要么提示证书或者重定向多次,算了还是撤回。 还是回归检测分主题的安全项,添加后安全是安全些,以下是几个测试的截图。  

预加载HSTS问题

[caption id="" align="aligncenter" width="1514"]checkbot test checkbot test[/caption] [caption id="" align="aligncenter" width="1383"]gtmetrix test gtmetrix test[/caption] [caption id="" align="aligncenter" width="1390"]webpagetest webpagetest[/caption]  

解决网站安全分预加载HSTS

Google了HSTS的解决方法,Wpbeginner的方法很全面,有以下主要4种方法,最后是添加后测试
  • 使用 Sucuri 添加 HTTP 安全标头
  • 使用 Cloudflare 添加 HTTP 安全标头
  • 使用 .htaccess 添加 HTTP 安全标头
  • 使用 WordPress 插件添加 HTTP 安全标头
 

测试 HTTP 安全标头

我选的第三项,.htaccess添加 HTTP 安全标头,个人觉得最方便,不过容易把站点搞炸,建议先备份再处理。 注意: .htaccess 文件中的不正确标头或冲突可能会在大多数 Web 主机上触发500 内部服务器错误,500后我就是恢复备份,还原最方便。  

Wpbeginner 添加HSTS方法

<ifModule mod_headers.c> 
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS 
Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff 
Header set X-Frame-Options DENY 
Header set Referrer-Policy: no-referrer-when-downgrade </ifModule>
  使用方法三后,还有预加载一些问题,看了之后这篇  

Thomasgriffin 添加HSTS方法

/** * Enables the HTTP Strict Transport Security (HSTS) header in WordPress. */ 
function tg_enable_strict_transport_security_hsts_header_wordpress() 
{ header( 'Strict-Transport-Security: max-age=10886400' ); } 
add_action( 'send_headers', 'tg_enable_strict_transport_security_hsts_header_wordpress' );
测试了下,添加includeSubDomains; preload,最终添加网站添加的内容如下:  

.htaccess 添加HSTS方法

<ifModule mod_headers.c> 
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS 
Header set X-XSS-Protection "1; mode=block" 
Header set X-Content-Type-Options nosniff 
Header set X-Frame-Options DENY 
Header set Referrer-Policy: no-referrer-when-downgrade 
</ifModule>
  不过添加完之后,缓存清掉,我的avada live 有点问题,拒绝弹出了,这个主题的代码高亮出不来了,等大佬们的解决方法, 这个问题未解决停用了。  

使用Headers Security Advanced & HSTS WP插件解决HSTS预加载

2021.12.7 更新,之前的这个问题一直没解决,停用插件等问题后,发现还是hsts没设置好的关系,所以停用了 .htaccess添加的方法,搜了下插件,看到这个 Headers Security Advanced & HSTS WP,果断尝试使用了,全程自动,适合小白,不会像.htaccess设置一样容易出现500错误。url需要重新定义,原有的将失效。 Headers Security Advanced & HSTS WP是适用于所有 WordPress 用户的最佳多合一免费插件,它允许您安全快速地自定义您的登录页面 URL。它不会重命名或替换文件,也不会添加重写或读取规则。wp-admin 目录和 wp-login.php 页面将不再去,记得把 URL 或任何你喜欢的地方加入书签,这样你就可以记住登录 URL。停用此插件将使您的站点配置完全恢复到之前的状态。 HSTS预加载高级安全

自定义您的 wp-admin 网址! 在Permalinks > Optional -> Security URL 中设置您的自定义登录URL。 重要提示:写下您的新网址! 常规的 wp-admin 目录和 wp-login.php 页面将不再起作用! 如果您不记得您的自定义 url,请通过 FTP 重命名插件目录以停用它。

固定链接这里更改成自己方便记忆的,然后保存就ok。  

查看HSTS预加载情况

HSTS2
  • securityheaders.com上检查 HTTP 安全标头,这个能直接查到评级,更方便查看。
  • hstspreload.org检查 HTTP 严格传输安全/HSTS ,这个需要提交到列表。
HSTS预加载测试结果   看到这里终于欣慰了,只不过又多安装了一个插件,先用着,至少效果达到了,elementor,avada live这些拒绝访问的问题解决了就行。  

参考链接

https://www.wpbeginner.com/beginners-guide/how-to-add-http-security-headers-in-wordpress/