雷灵模板

WordPress 新站必做的 12 项基础安全加固:从登录到文件权限(附 Nginx 规则)

avatar

雷灵

🤖AI摘要
本文介绍了WordPress新站必做的12项基础安全加固措施,包括管理员账号设置、登录爆破防护、更新策略、禁止后台在线编辑代码、文件权限与属主调整、上传目录禁止执行PHP等。通过这些措施可以有效降低网站被攻击的风险。文章强调基础安全措施的重要性,并提供了具体操作方法,如Nginx规则设置等,以帮助WordPress站长提高网站安全性。

WordPress 新站必做的 12 项基础安全加固:从登录到文件权限(附 Nginx 规则)

我见过不少 WordPress 站“内容刚写了三篇”,后台就开始被爆破、被挂马、被塞跳转广告。更尴尬的是:很多站并不是遇到了什么高端攻击,而是栽在弱口令、可写目录、过期插件这些基础问题上。

下面这 12 项是我给新站做上线检查时常用的清单,按优先级排好。你不需要一口气全做完,但至少把前 6 项做了,风险会立刻下降一大截。


先给你一张“抄作业清单”(建议按顺序执行)

1) 管理员账号/密码/2FA2) 登录爆破防护(限速/封禁/验证码)3) 更新策略(核心/主题/插件)4) 禁止后台在线编辑代码5) 文件权限与属主(别 777)6) 上传目录禁止执行 PHP7) 关闭或限制 xmlrpc.php8) 保护敏感文件(备份包、日志、.env)9) 安全头(基础三件套)10) 备份与恢复演练(比“安全插件”更重要)11) WAF/防扫描(有条件就上)12) 监控与巡检(别等用户告诉你被黑)

下面逐项展开。


1)管理员账号:别给爆破留“默认答案”

  • 用户名不要用 admin / administrator
  • 密码别用生日/手机号/站名
  • 直接开 2FA(二步验证)

我自己的习惯:新站上线当天就把管理员账号改成不常见的名字,然后再建一个“日常编辑账号”(权限低一点),平时用编辑账号写文章,管理员账号尽量少登录。


2)登录爆破防护:别让对方无限试

你会发现很多攻击是脚本扫后台 + 暴力撞库。最简单有效的做法就是:

  • 限制登录尝试次数(插件或 WAF)
  • 登录失败触发封禁(fail2ban/面板策略/安全插件)
  • 必要时加验证码(尤其是站点有点流量后)

如果你用 Nginx,可以加一个基础限速(示意):

# http 块里定义限速区
limit_req_zone $binary_remote_addr zone=wp_login:10m rate=5r/m;

server {
  location = /wp-login.php {
    limit_req zone=wp_login burst=10 nodelay;
    include fastcgi_params;
    # 你的 PHP-FPM 转发配置...
  }
}

别指望“改后台路径”能解决安全问题,但限速确实能让爆破变得很痛苦。


3)更新策略:漏洞公开后,拖一天就多一天风险

WordPress 安全事件里,插件漏洞占比很高。建议你定个简单规则:

  • 核心/插件/主题:至少每周检查一次
  • 不用的插件:直接删除(不是停用)
  • 插件少而精:功能重复的尽量合并

如果你担心更新翻车,那就先在低峰期更新,并且保留可回滚的备份(见第 10 条)。


4)禁止后台在线编辑代码:拿到后台 ≠ 直接写马

很多人不知道 WordPress 默认允许在后台编辑主题/插件文件。拿到管理员账号后,对方可以直接写 PHP。

wp-config.php 加这一行:

define('DISALLOW_FILE_EDIT', true);

这条是“低成本高收益”。


5)文件权限与属主:不要 777,不要把站点目录交给 Web 用户

常见翻车:为了“解决权限问题”,把整个站点目录 chmod -R 777。这等于说“谁都能写”。

一个相对安全的参考(按实际用户组调整):

# 假设站点目录在 /var/www/wordpress
cd /var/www/wordpress

# 目录 755、文件 644
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

# wp-config.php 收紧
chmod 640 wp-config.php

如果你用面板或特定用户跑 PHP-FPM,属主/属组也要配合(别硬套命令)。原则就一句:能不写就不写,能少写就少写


6)上传目录禁止执行 PHP:堵住“上传木马”的后路

WordPress 上传目录通常是 wp-content/uploads/。建议直接禁止执行 PHP:

location ~* /wp-content/uploads/.*\.php$ {
  deny all;
}

这条非常常见,也非常有效。


7)xmlrpc.php:不用就关,用就限

xmlrpc.php 常被用来放大爆破/刷请求。

  • 你不用远程发布/第三方同步:直接禁用
location = /xmlrpc.php { deny all; }

如果你确实要用(比如某些客户端),那就至少对访问做限速/白名单。


8)保护敏感文件:备份包、日志、.env 都别让人下载

我见过最离谱的情况是:站长把数据库备份文件直接扔在网站根目录,然后被人下载走了。

Nginx 可以这样挡一层:

location ~* \.(env|log|bak|sql|zip|tar|gz)$ { deny all; }
location ~* /(\.git|\.svn)/ { deny all; }

9)安全头(基础三件套):先把最容易被利用的点收紧

add_header X-Frame-Options SAMEORIGIN always;
add_header X-Content-Type-Options nosniff always;
add_header Referrer-Policy no-referrer-when-downgrade always;

HSTS/CSP 可以更进一步,但建议你在确认没有混合内容、没有奇怪第三方脚本依赖后再上。


10)备份与恢复演练:这才是“终极保险”

安全做得再好,也要假设自己会翻车。

建议(保守但实用):

  • 数据库:每日备份,保留 7–30 天
  • 文件:每周备份(上传目录、主题、关键配置)
  • 至少做一次恢复演练(把备份恢复到另一台机器/另一个目录试跑)

重点:只做备份不演练,等出事时你会发现“备份不可用”。


11)WAF / 防扫描:有条件就上

如果你用 CDN(Cloudflare/阿里云/腾讯云 等),一般都有基础 WAF 或规则引擎。对新站来说,开个基础防护就够用:

  • 拦截明显的扫描器
  • 拦截注入/常见攻击 payload
  • /wp-login.php 这类路径做更严格策略

12)监控与巡检:别等用户告诉你“怎么跳博彩了”

最实用的监控项其实很朴素:

  • 5xx、404 的异常飙升
  • 登录失败次数激增
  • 站点文件最近修改时间异常(尤其是 uploads 里出现 php)

如果你已经出现过挂马/跳转,建议你看看站内这篇排查与清理思路:

  • 网站被 JS 挂马后快速排查清理与防复发实战指南

总结:新站安全就是“把门锁好 + 把钥匙收好 + 有备份能重来”

WordPress 安全没有银弹,但也不需要搞得特别复杂。把账号、权限、更新、备份这四件事做扎实,你的网站会比 90% 的新站更抗打。


相关阅读

黔ICP备2022004976号
powered by 雷灵模板