xmlrpc.php 被刷流量导致 WordPress 瘫痪崩溃
作为一个网站的管理员,都是为了网站二操碎了心,为了网站的功能网站的内容没日没夜的完善着,但是总有些无法控制而又无可奈何的事情。
辛辛苦苦写的文章,眼看着搜索引擎收录了,网站又打不开了,查询服务器的状态 CPU 100% 满负荷运载,重启 Apache 以为问题就能解决,可是没过几分钟,又是 100% 了,查看网站防护日志,原来有个 IP 不停的访问 xmlrpc.php 文件,造成服务器瘫痪,也就是说对方在放大型暴力猜解攻击,应该是传说中的 xmlrpc 暴力破解密码导致,而 WordPress 默认是将 xmlrpc 功能开启的,这被用来 DDOS 攻击导致占用资源过高,服务器卡死宕机。
直接将这个 IP 加入访问黑名单,但是我发现又有几个 IP 在访问 xmlrpc.php 文件,这似乎有点治标不治本,就我个人而言,我几乎是不使用 xmlrpc 功能。
解决方法
屏蔽 XML-RPC (pingback) 的功能
在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 端口
在 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; }
总结
1、不建议直接删除 xmlrpc.php,否则它会让你的 WordPress 网站发生莫名的错误。
2、建议采用方法 2
3、其实扫描,http 的 DDOS 攻击,CC攻击都是大量消耗服务器资源,我们的服务器都是累死的。
4、建议把WP升级到最新版本,还是要相信新版本漏洞少一点。
5、一般这个功能是用不到的,我们直接屏蔽掉,默认当前的WP版本是开启的。这样,我们就可以解决 WordPress 被利用 xmlrpc.php 暴力破解攻击问题。有些时候并不是针对我们的网站攻击,而是对方利用某个关键字扫到我们的网站造成的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论