安全公司 Sucuri 在3月9日表示,黑客利用了超过 162000 家 WordPress 网站,向目标网站进行了 DDoS 攻击,所有请求都是随机值(比如?4137049=643182?),因而绕过了缓存,迫使每回页面重新加载,于是目标服务器很快就挂了,并且宕机了好几个小时。
XML-RPC 和其 pingbacks 端口
这次攻击者是使用的 WordPress 的 XML-RPC 的 pingbacks 端口进行攻击的,XML-RPC 是 WordPress 用于第三方客户端(如 WordPress iPhone 和安卓客户客户端,Windows Writer 等)的 API 接口,XML-RPC 还可以用于 pingbacks 和 trackbacks 端口,这个都款可以用于站点之间的通讯,但是被误用,就可能被攻击者用来进行 DDoS 攻击。
Sucuri 已经开发了 DDoS 扫描工具让你检测是否你的站点也被攻击者利用了,在输入框中输入你的域名,扫描工具会在他们的 log 文件中找是否你的站点是否在这次攻击的 log 文件中,如果你的域名没有出现,那么恭喜你,你的站点没有去攻击别人。
如何防止被攻击者利用
目前 WordPress 官方已经在想办法是否可以使用 Akismet 插件解决这个问题,但是我们还是可以使用下面两个方法解决问题:
直接关闭 XML-RPC
最简单的方法是直接关闭 XML-RPC 接口(WPJAM Basic 插件已经提供了选项),但是这样的话,你就无法使用第三方客户端发布文章了,如果你经常使用客户端的话,使用会很不方便。
仅仅关闭 Pingbacks 端口
下面这段代码可以让你仅仅关闭 XML-RPC 的 pingback 端口:
代码语言:javascript复制add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}
当然这个功能我也很早整合到 WPJAM Basic 插件中了。