只需简单设置 Nginx 规则,就能提高 WordPress 网站的安全性,比如限制访问 XMLRPC、限制请求类型、禁止直接访问 PHP 文件和禁止访问某些敏感文件等。将如下代码,放到 WordPress 站点所使用的 Nginx 配置文件 server {}
内即可。
1.限制访问 XMLRPC
WordPress中 的 XMLRPC 端点(根目录下的xmlrpc.php文件)用于允许外部应用程序与WordPress数据交互。例如,它可以允许添加、创建或删除文章。但是,XMLRPC也是一种常见的攻击媒介,攻击者可以在未经授权的情况下执行这些操作。所以最好允许从您信任的授权 IP 请求XMLRPC,如下所示:
location ~* /xmlrpc.php$ { allow 172.0.1.1; deny all; }
添加上述内容后,应该在浏览器中访问 xmlrpc.php 时会看到 403 错误响应代码。
2.限制请求类型
大多数情况下,您的网站可能只执行两种类型的请求:
GET - 从你的网站上检索数据
POST - 将数据提交到你的网站
所以,只允许我们的网站执行这两种请求类型,也是增强安全性的做法。
禁止直接访问PHP文件
在神不知鬼不觉的情况下,黑客可能会将PHP文件上传到你的服务器中,然后通过访问该恶意文件执行某些操作,即可在你的网站上创建后门。所有我们应该禁止直接访问任何php文件:
location ~* /(?:uploads|files|wp-content|wp-includes|akismet)/.*.php$ { deny all; access_log off; log_not_found off; }
4.禁止访问某些敏感文件
和 PHP 文件相似,以点开头的文件,比如 .htaccess、.user.ini 以及 .git 可能包含敏感信息。为了更安全,最好禁用对这些文件的直接访问。
location ~ /\.(svn|git)/* { deny all; access_log off; log_not_found off; } location ~ /\.ht { deny all; access_log off; log_not_found off; } location ~ /\.user.ini { deny all; access_log off; log_not_found off; }