报错解决方法 XML-RPC server accepts POST requests only.
方法一:限制访问 XMLRPC
对于Nginx服务器,你需要修改你的Nginx配置文件。这个文件通常位于/etc/nginx,/usr/local/nginx或/usr/local/etc/nginx。在配置文件中找到你的WordPress服务器块,并在server块中添加下列代码:
宝塔面板为例:网站–设置-配置文件
下面的代码 加到 #CERT-APPLY-CHECK–START 下面
location ~* /xmlrpc.php {
deny all;
}
或者跳转
location ~* /xmlrpc.php {
proxy_pass https://www.23986.com;
}
添加上述内容后,应该在浏览器中访问 xmlrpc.php 时会看到 403 错误响应代码。
限制请求类型
大多数情况下,您的网站可能只执行两种类型的请求:
GET – 从你的网站上检索数据 POST – 将数据提交到你的网站 所以,只允许我们的网站执行这两种请求类型,也是增强安全性的做法。
禁止访问某些敏感文件
和 PHP 文件相似,以点开头的文件,比如 .htaccess、.user.ini 以及 .git 可能包含敏感信息。为了更安全,最好禁用对这些文件的直接访问。
location ~ /\.(svn|git)/* {
deny all;
access_log off;
log_not_found off;
}
方法二:利用宝塔防火墙(收费版)
一般可以直接使用宝塔的防火墙来防护此类攻击。当然宝塔防火墙在官方是收费的。
首先:将/xmlrpc.php加入URL黑名单拒绝访问。PS:还有/wp-json也可以加进去。
利用宝塔规则优先级:UA白名单> UA黑名单> URL关键词拦截> IP白名单 > IP黑名单 > URL白名单 > URL黑名单 > CC防御 > 禁止境外IP访问 >User-Agent > URI过滤 > URL参数 > Cookie > POST
然后将自己设备UA加入白名单即可,自己设备具体UA可以在网站访问日志里查看。
设置好后,除了特定的UA访问,其他访问该文件都是403。
方法三:修改wordpress主题模板目录的functions.php 文件
直接屏蔽XML-RPC (pingback)功能也有效的防护攻击
在主题的 functions.php 文件中添加以下代码来禁用 xmlrpc.php 文件:
add_filter('xmlrpc_enabled', '__return_false');
修改 functions.php 文件也可能影响到你的主题的其它功能,所以在修改前,务必要做好备份
以上几种方法,比较推荐第三种方法,使用屏蔽 XML-RPC (pingback)的功能!
隐藏WordPress的版本号
直接将代码复制到自己主题文件夹对应的functions.php文件里面即可
// remove version from head
remove_action('wp_head', 'wp_generator');
// remove version from rss
add_filter('the_generator', '__return_empty_string');
// remove version from scripts and styles
function lS_remove_version_scripts_styles($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'lS_remove_version_scripts_styles', 9999);
add_filter('script_loader_src', 'lS_remove_version_scripts_styles', 9999);