阻止 xmlrpc.php 在 nginx 中使用,同时使用 Windows Live Writer

Prevent xmlrpc.php from using in nginx and also use Windows Live Writer

我的博客是 运行 在 nginx 上的 wordpress 中。 发现很多DDOS攻击,nginx日志如下

 aaa.bbb.ccc.ddd - - [19/Oct/2015:16:11:50 +0900] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;  http://www.google.com/bot.html)" "-"

我添加的conf文件如下。

location = /xmlrpc.php {
    allow (my global ip);
    allow 127.0.0.1;
    deny all;
    access_log off;
    error_log off;
}

防止DDOS攻击似乎效果不错。 但是我发现我在使用Windows Live Writer的时候遇到了错误。报错对话框是这样的

http://(my blog)/xmlrpc.php
405 Not Allowed

似乎是 "allow (my global ip)" 和 "deny all" 起作用了,因为 Windows Live Writer 错误消息不是 403 而是 405。但是我找不到任何解决方案。

为了阻止人们滥用 XML-RPC 文件,您可以将以下过滤器添加到主题的 functions.php 文件中:

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

来源: https://blog.sucuri.net/2014/03/more-than-162000-WordPress-sites-used-for-distributed-denial-of-service-attack.html