最近爆出的XSS漏洞使我开始留意该博客的安全问题。
# 序
该博客承载着个人对地理信息科学、计算机、统计学等相关学科知识的浅薄理解。尽管该博客是一个非盈利性质的小博客,访问IP也并未破百,然而它是我平凡的日常学习生活中不可或缺的调味剂。除每周备份等常规安全措施,加强对博客本体 WordPress 的保护也是至关重要的安全手段。谈及网络保护,免费且功能强大的 CloudFlare 是全网公认最良心的网络安全产品。因此,本贴旨在阐述如何基于 CloudFlare 提供的网络安全服务保护 WordPress 。
# 将域名转入CloudFlare
为避免重复造轮子的工作,本贴不再赘述此步骤。
# 设置CloudFlare参数
避免重定向太多次导致的错误
将 SSL/TLS 中的加密方式设置为 Full ,此举将避免HTTP与HTTPS的来回转换,有效避免多次冗余的重定向。
仅允许指定IP访问 /wp-login.php
此次XSS漏洞能在 /wp-login.php 被调用,尽管本节介绍的禁止其他IP访问该页面的方法拒止该漏洞的有效性未得到验证,然而对于管理员、编辑者都由一人来担任的小博客博主来说,此举给予我很强的安全感。以下是设定步骤:
在 Security 选项卡内找到WAF Web Application Firewall ,并新建一条防火墙规则。规则内容如下图所示。
其中,当 IP Source Address 的运算符选择 is not in 时,值可以是多个IP地址(IPV4&IPV6),意为这些IP地址能够访问登陆页面,其余IP地址会被BLOCK。
/wp-admin 是WP博客的管理页面,错误的操作将使得整个博客面临瘫痪的风险,其重要性不言而喻。尽管良心大厂 CloudFlare 提供免费CDN服务,然而该内容不宜缓存,因此需要避开缓存该部分内容。具体操作如下:避开缓存 /wp-admin 内的内容
在 Caching 选项卡内找到[latex]\textit{Cache Rules}[/latex],并新建一条页面规则。规则内容如下图所示。
其中,配置正确的路径并选择[latex]\textit{Bypass}[/latex],使得管理员在后台操作中贴近原生体验,且对博客来说不会因为缓存问题而瘫痪。
重要:打开博客域名前的小云朵
在 DNS 选项卡内找到Records,将博客域名后的小云朵点亮,使得其 Proxied 。
# 结语
用心耕耘记录成长的内容值得精心呵护,定期备份是必不可少的保护措施。其中,主题、 WordPress 以及数据库是备份的主要部分。此外,插件及其参数、图片和其他重要内容也可以按需备份。