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

网站安全分预加载HSTS,这个问题困扰挺长时间,测试了不少检测工具,安全分一直很低,今天想折腾把网站速度提升下,因为用着sitegroud有待Cloudflarecdn的,不过必须打开www比较烦人。最后换了插件完美解决,测试结果A+。

那就试试吧,不过没折腾好,要么提示证书或者重定向多次,算了还是撤回。

还是回归检测分主题的安全项,添加后安全是安全些,以下是几个测试的截图。

checkbot test
checkbot test
gtmetrix test
gtmetrix test
webpagetest
webpagetest

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 重命名插件目录以停用它。

new wplogin

固定链接这里更改成自己方便记忆的,然后保存就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/

How to Enable HTTP Strict Transport Security (HSTS) in WordPress

默认图片
Jensfrank
文章: 42