Restrict access to xmlrpc.php

时间:2014-08-01 作者:brentwpeterson

我是Wordpress的新手,最近我注意到大量流量会影响以下内容:

162.242.170.222 - - [01/Aug/2014:08:18:54 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:01 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:02 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4859
162.242.170.222 - - [01/Aug/2014:08:19:11 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:13 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
162.242.170.222 - - [01/Aug/2014:08:19:18 -0500] "POST /xmlrpc.php HTTP/1.0" 503 4861
我阻止了IP地址,这是一个临时解决方案。是否有永久性的解决方案来阻止这些请求,特别是如果我不需要

3 个回复
最合适的回答,由SO网友:YaFred 整理而成

有这样的插件:例如。http://wordpress.org/plugins/disable-xml-rpc/

您也可以自己编写过滤器

add_filter(\'xmlrpc_enabled\', \'__return_false\');
您可以简单地将此代码添加到主题函数中。php(位于wp内容/主题/your\\u主题中)。

但是,建议您创建子主题(http://codex.wordpress.org/Theme_Development) 这样,在更新主题时,修改不会消失。

或者,您可以创建插件(http://codex.wordpress.org/Writing_a_Plugin) 你将把所有的WordPress调整放在哪里。

为了更好地保护,我还添加了以下内容:

/**
 * Secure WordPress by removing version
 */
remove_action(\'wp_head\', \'wp_generator\');


/**
 * Secure WordPress by hiding login errors
 */
function hide_login_errors($errors) { return \'login error\'; }
add_filter(\'login_errors\', \'hide_login_errors\', 10, 1);

SO网友:fuxia

如果您的服务器是Apache,您甚至可以在访问WordPress之前阻止其访问。htaccess:

Redirect 403 /xmlrpc.php
您可以添加另一行以保持简短的响应:

ErrorDocument 403 "no"
这将发送一个非常小的响应(两个字节加上HTTP头),并将节省您的资源以获得更好的流量。

SO网友:Hans

另一种方法是把这个放在你的。htaccess文件:

<Files "xmlrpc.php">
order allow,deny
deny from all
errordocument 403 /noaccess.html
errordocument 404 /noaccess.html
</Files>

结束