.htaccess文件定期被篡改致403错误,寻求排查方案
问题背景
我的WordPress站点的.htaccess文件会定期被篡改,原本的默认内容被替换为以下代码,导致网站返回403错误无法访问:
# Apache 2.4+ <IfModule authz_core_module> Require all denied </IfModule> # Apache 2.2 <IfModule !authz_core_module> Deny from all </IfModule>
恢复备份的原内容后网站可正常运行,但间隔不定时间后会再次被篡改。
当前环境:Jelastic Paas + LiteSpeed Web Server
已执行的操作:
- 用BitNinja扫描文件
- 部署Wordfense和Sucuri安全插件
- 删除可疑文件
但问题仍未解决。
已安装的插件列表:
- Checkout Files Upload for WooCommerce
- Code Snippets
- Contact Form 7
- Content for multiple Courses in LearnPress
- Cool Integration for LearnPress & WooCommerce
- Elementor
- Essential Addons for Elementor
- Facebook Chat Plugin - Live Chat Plugin for WordPress
- Flamingo
- LearnPress
- LearnPress - WooCommerce Payment Methods Integration
- Limit Max IPs Per User
- LiteSpeed Cache
- LoginPress - Customizing the WordPress Login Screen.
- LoginWP (Formerly Peter's Login Redirect)
- Nextend Social Login
- Password Strength Settings for WooCommerce
- Quiz Maker
- reCaptcha by BestWebSoft
- Redirection
- Redirection for Contact Form 7
- Simple History
- Sucuri Security - Auditing, Malware Scanner and Hardening
- TeraWallet
- UpdraftPlus - Backup/Restore
- User Switching
- VdoCipher
- WooCommerce
- WooCommerce Checkout Manager
- WooCommerce Checkout Manager PRO
- WooCommerce Wallet Coupons
- Wordfence Security
- WordPress Persistent Login
- Wordpress Special Characters in Usernames
- WP Mail SMTP
- WP Ultimate CSV Importer
- WP Ultimate Exporter
- WPC Fly Cart for WooCommerce
- WPC Product Bundles for WooCommerce
- WPFront Notification Bar
具体排查思路
1. 追踪文件修改记录
- 调取LiteSpeed的访问日志、错误日志及Jelastic Paas的系统日志,定位
.htaccess被篡改时段的请求记录,重点关注对应IP、用户代理和请求路径,锁定操作来源。 - 利用已安装的
Simple History插件,查看后台所有文件修改类操作,排查是否有非管理员账号的可疑操作。
2. 加固文件权限与锁定
- 将
.htaccess文件权限设置为644,确保所有者为服务器运行用户(避免使用高权限账号),防止越权修改。 - 在Jelastic Paas平台尝试锁定
.htaccess文件(通过文件系统权限或平台自带的文件保护功能),观察是否仍会被篡改:若无法篡改,说明是通过常规文件写入权限操作;若仍能篡改,需排查服务器层面的权限漏洞或恶意进程。
3. 排查插件与主题风险
- 优先检查高风险插件:Code Snippets(自定义代码易存漏洞)、WP Ultimate CSV Importer/Exporter(导入功能易被利用)、付费插件
WooCommerce Checkout Manager PRO及LearnPress系列插件,确认版本是否最新,是否有公开安全漏洞。 - 采用“二分法”禁用插件:先禁用所有非核心插件,观察问题是否消失;若恢复正常,再逐个启用插件,定位恶意插件。
- 检查主题核心文件:查看
functions.php、header.php等文件,排查是否有隐藏的文件写入、远程调用等恶意代码。
4. 扫描服务器环境漏洞
- 确认LiteSpeed Web Server版本为最新,排查是否存在已知安全漏洞;检查Jelastic Paas环境配置,关闭不必要的服务与权限。
- 执行进程查看命令(如
ps aux),排查服务器上的未知或可疑运行进程,尤其是持续运行的脚本进程。 - 检查服务器定时任务(
crontab),删除未授权的定时任务,防止其定期执行篡改脚本。
5. 加固账号安全
- 清理WordPress用户列表:删除未使用的管理员账号,修改现有管理员账号的用户名(避免
admin等常见名称),设置强密码。 - 用Wordfense的会话管理功能,查看当前活跃会话,强制注销可疑的登录会话。
- 暂时禁用社交登录、持久登录等非必要登录方式,缩小攻击面。
6. 深度扫描恶意代码
- 启用Wordfense的深度扫描功能,勾选扫描所有文件(包括压缩文件、隐藏文件),重点查找文件写入、远程执行类恶意代码。
- 手动对比核心文件:将
wp-includes、wp-admin目录下的文件与官方WordPress核心文件的MD5值对比,排查被篡改的核心文件;检查wp-content/uploads目录下的未知PHP文件。
内容的提问来源于stack exchange,提问作者Mohammed Etikar
相关产品推荐
相关产品推荐

