GG资源网

OpenLiteSpeed禁用xmlrpc.php 避免DDoS攻击

最近经常发现自己的站点遭受攻击,查询了一下日志,发现有大量的访问xmlrpc.php,造成CPU、内存、流量等居高不下。网上很多教程提示如何禁用xmlrpc.php,否则很容易被暴力破解、DDoS攻击导致瘫痪。如何禁用呢?像这些站点使用OpenLiteSpeed环境的,设置完还不生效的,如何解决?这里就分享一下解决教程。

什么是xmlrpc.php?

XML-RPC是支持WordPress与其他系统之间通信的规范。它通过使用HTTP作为传输机制和XML作为编码机制来标准化这些通信来实现此目的。

在WordPress的早期版本中,默认情况下已关闭XML-RPC。但是从3.5版开始,默认情况下已启用它。这样做的主要原因是允许WordPress移动应用程序与您的WordPress安装进行对话。

如果您的站点上启用了XML-RPC,则黑客可能会利用xmlrpc.php在短时间内向您的站点发送大量的pingback,从而在您的站点上发起DDoS攻击。这可能会使服务器超载,并使站点无法正常运行。

因为xmlrpc.php随每个请求发送身份验证信息,所以黑客可以使用它来尝试访问您的站点。这样的暴力攻击可能使他们可以插入内容,删除代码或破坏数据库。

如果攻击者向您的站点发送了足够多的请求,每个请求使用不同的用户名和密码对,则它们最终有可能会被攻击到正确的请求,从而使他们可以访问您的站点。因此,如果您正在运行WordPress的最新版本(使用REST API与外部系统进行通信),则应禁用xmlrpc.php

如何判断自己的站点启用了xmlrpc.php?

其实很简单,只要访问你的域名/xmlrpc.php就知道了,如的https://www.banzhuti.com/xmlrpc.php,如果未禁用的状态如下:

OpenLiteSpeed禁用xmlrpc.php 避免DDoS攻击插图

如何禁用了后的状态一般为403,如下:

OpenLiteSpeed禁用xmlrpc.php 避免DDoS攻击插图1

如何禁用xmlrpc.php?

这里主要总结了6种方法,大家可以根据自己的需要进行使用

第一种是屏蔽 XML-RPC (pingback) 的功能

在自己的WordPress主题的functions.php文件中添加如下代码

​add_filter('xmlrpc_enabled', '__return_false'); 

第二种方法就是通过.htaccess添加如下代码屏蔽xmlrpc.php文件的访问

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

第三种同样的是修改.htaccess文件加跳转

如果有用户访问xmlrpc.php文件,然后让其跳转到其他不存在或者存在的其他页面,降低自身网站的负担。

# protect xmlrpc
<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php http://example.com/custom-page.php
</IfModule>

第四种阻止pingback端口

在WordPress主题的functions.php文件中添加

add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}

第五种添加服务器配置

Nginx配置添加如下代码禁止访问该文件

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

Apache配置禁止访问该文件:

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

第六种安装插件

安装WordPress安全插件,可以试一下【iThemes Security Pro汉化中文专业版|WordPress最佳安全防护插件介绍】或【WPMU Dev Defender Pro 3.3.3完美汉化中文版|WordPress高级防火墙安全防护插件】

为什么在OpenLiteSpeed环境下不生效?

不懂大家有没有发现,以上这些办法都试了之后,发现xmlrpc.php还是能访问,觉得很奇怪,为什么呢?

比如在主题里增加代码​add_filter(‘xmlrpc_enabled’, ‘__return_false’);后,结果还是不生效,到底是怎么回事呢?这里经过测试发现,只能在.htaccess文件添加代码的方法才有效。

添加如下代码:

<IfModule mod_rewrite.c> 
RewriteRule ^(xmlrpc.php|wp-trackback.php) - [F,L] 
</IfModule>

并且,修改了.htaccess文件后,还需要重启LiteSpeed服务。

重启命令如下:

/usr/local/lsws/bin/lswsctrl restart
OpenLiteSpeed禁用xmlrpc.php
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » OpenLiteSpeed禁用xmlrpc.php 避免DDoS攻击

发表评论