问题描述

我有几个托管的 wordpress 博客,我一直在试图访问他们,他们真的很慢。我看了我的服务器日志,我发现这个

stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"

我从 GoogleBot 到几个站点的文件/xmlrpc.php 每秒可以获得〜 10 次点击,这似乎正在放慢服务器的速度。我在跑步

tail -f 

在日志文件上,可以看到这些请求继续。有人知道为什么会发生这种情况,或者你可以做什么来阻止它?

最佳解决方案

如果是我,我将使用 iptables 阻止 IP,如果您具有这种服务器级别的访问权限。

您也可以禁用 xmlrpc 。不幸的是,由于 3.5,禁用该功能的管理屏幕选项已被删除。一行代码应该禁用它:add_filter( 'xmlrpc_enabled', '__return_false' ); 这可能会节省一些开销的请求,虽然它不会消除所有这些。

次佳解决方案

“Googlebot” 没有理由访问 xmlrpc.php 您可以将其添加到 xmlrpc.php 的顶部

// Block fake Googlebot
if ( strpos($_SERVER['HTTP_USER_AGENT'], "Googlebot") === true ) { exit(); }

我猜这是一个核心的 WordPress 文件。所以这样更新可能会令人烦恼。如果 Automattic 使用 Akismet 从所有 WP 脚本到处黑名单这些 IP 将会很好。

更新:在 DDoS 开始对我的服务器征税后,我最终删除了 chmod 0 xmlrpc.php 的权限 (见我的评论) 。换句话说,这个有条件的 PHP 代码可能不会阻止攻击者临时禁用您的博客。在任何情况下,他们通常放弃相当快。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。