WordPress 禁用 xmlrpc.php 避免 DDOS 攻击

最近一段时间查看云服务器资源,内存使用率和CPU使用率都比较高,尤其是内存几乎达到了80%。通过查看日志发现网站存在大量的垃圾流量访问,多是xmlrpc.php访问,xmlrpc.php是 WordPress 为手机等客户端提供接口的一个文件,可被用来DDOS攻击导致占用资源过高。xmlrpc.php攻击可以绕过使用用户名登陆限制,进行暴力破解。

如何禁用xmlrpc.php,阻止这些无效访问呢?有以下几种方法:

一、修改主题functions.php文件

1、在文件内添加以下代码:

//禁用XML-RPC接口
add_filter('xmlrpc_enabled', '__return_false');

2、还可以用代码转向任意网址:

add_action('login_enqueue_scripts','login_protection');
function login_protection(){
if($_GET['root'] != 'zhuanxiang')header('Location: http://任意其他网站或者网站首页/');
}

然后我们自己登录时需要用:网站域名/wp-login.php?root=zhuanxiang,这个网址访问后台。

3、只关闭XML-RPC的pingback 端口

如果你还是用使用第三方客户端来管理Wordpress文章,那么可以只关闭XML-RPC的pingback 端口

//禁用XML-RPC的pingback接口
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}

以上代码放到主题的functions.php文件即可。

二、修改.htaccess文件

1、加入以下代码:

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

2、还可以让访问转向其他网址:

# protect xmlrpc
<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php http://baidu.com
</IfModule>

三、修改服务器配置

1、nginx配置禁止访问该文件:

location ~* /xmlrpc.php {
deny all;
}

2、Apache配置禁止访问该文件:

<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php http://baidu.com
</IfModule>

通过以上几种方法都可以实现禁止xmlrpc.php恶意访问的目的。

给TA买糖
共{{data.count}}人
人已赞赏
wordpresswordpress主题

WordPress Qui-Pure 纯文本/图文博客主题

2020-12-26 23:51:49

wordpresswordpress主题

Close主题 WordPress 网站维护模式

2021-2-12 8:25:49

⚠️
Golurending上的部份代码及教程来源于互联网,仅供网友学习交流,未经Golurending作者或上传书面授权,请勿作他用。
若您的权利被侵害,请联系站长 邮箱codesns#163.com(#-@) 或 点击右侧 私信:管理员 反馈,我们将尽快处理。
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索