Wordpress网站又被黑了(wordpress安全防护教程)

用WP搞了几个独立站,上去一看都被挂马了。
不想加插件,自己动手吧,找GPT边问边操作。
Wordpress网站又被黑了(wordpress安全防护教程)
记录如下:

目标

阻止 PHP 后门写入
防止后台被暴力破解
防止用户名暴露(author 枚举)
防止后台编辑代码(写入后门)
禁止 uploads 执行 PHP
防止 xmlrpc 被滥用
加强 HTTP 安全
保留 LSCache 加速功能

一、设置文件权限(第 1 步)

目的:阻止恶意程序写入文件或修改核心文件
文件/目录
权限
所有目录
755
所有文件
644
wp-config.php
600
操作步骤
  1. 登录 Hostinger → File Manager

  2. 进入 public_html

  3. 修改目录权限

    • 右键 → Permissions → 755

    • 勾选 Recursive → Directories

  4. 修改文件权限

    • 右键 → Permissions → 644

    • 勾选 Recursive → Files

  5. wp-config.php

    • 单独设置 600

二、禁止 uploads 目录执行 PHP

目的:阻止黑客上传后门 PHP 文件
进入 /wp-content/uploads/
新建 .htaccess 文件
写入:
<FilesMatch ".php$">  Order Allow,Deny  Deny from all</FilesMatch>

三、禁止后台编辑 PHP / 插件 / 主题

目的:后台被黑后无法直接写入代码
打开 wp-config.php
在 /* That's all, stop editing! */ 上方加:
define('DISALLOW_FILE_EDIT'true);define('DISALLOW_FILE_MODS'true);

四、禁用 XML-RPC

目的:阻止 API 爆破和外部发文接口滥用
打开根目录 .htaccess (/public_html/.htaccess)
添加:
<Files xmlrpc.php>  Order Allow,Deny  Deny from all</Files>

五、防止 author 枚举(暴露管理员用户名)

根目录 .htaccess 上方加:
RewriteCond %{QUERY_STRING} (^|&)author=d+(&|$)RewriteRule ^ /? [L,R=301]

六、自定义后台登录地址

根目录 .htaccess 上方加:
RewriteEngine OnRewriteRule ^mylogin$ wp-login.php [NC,L]
登录地址变成 /mylogin
wp-login.php 可保留备用或进一步重定向 404
这里可以改成自己喜欢的登录地址

七、禁止目录列表

根目录 .htaccess 加:
Options -Indexes
防止访问 /wp-content/ 等目录看到文件列表

八、HTTP 安全 Header

根目录 .htaccess 加:
<IfModule mod_headers.c>Header set X-Frame-Options "SAMEORIGIN"Header set X-Content-Type-Options "nosniff"Header set X-XSS-Protection "1; mode=block"</IfModule>

九、保留 LSCache 加速

根目录 .htaccess 顶部加:
# BEGIN LSCACHE<IfModule LiteSpeed>CacheEnable public /</IfModule># END LSCACHE

完整根目录 .htaccess 示例(直接可用)

# =========================# LSCache 配置# =========================# BEGIN LSCACHE<IfModule LiteSpeed>CacheEnable public /</IfModule># END LSCACHE
# =========================# 禁用 XML-RPC# =========================<Files xmlrpc.php>  Order Allow,Deny  Deny from all</Files>
# =========================# 防止 author 枚举# =========================RewriteCond %{QUERY_STRING} (^|&)author=d+(&|$)RewriteRule ^ /? [L,R=301]
# =========================# 自定义登录地址# =========================RewriteEngine OnRewriteRule ^mylogin$ wp-login.php [NC,L]
# =========================# 禁止目录列表# =========================Options -Indexes
# =========================# HTTP 安全 Header# =========================<IfModule mod_headers.c>Header set X-Frame-Options "SAMEORIGIN"Header set X-Content-Type-Options "nosniff"Header set X-XSS-Protection "1; mode=block"</IfModule>
# =========================# WordPress 原生规则# =========================# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
希望有效吧,不清楚的可以去找GPT,说的很通透。
PS:服务器用的Hostinger,其他的服务器管理文件权限的应该大差不差。

原创文章,作者:兵临城下,如若转载,请注明出处:https://www.liulinblog.com/10073.html

(0)
加入羊毛线报群

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

聚创笔记
微信推客
关注公众号