web-dev-qa-db-ja.com

Xmlrpc.phpへのアクセスを制限する

私はかなり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アドレスをブロックしました。特に私が必要ないのであれば、これらの要求をブロックするための恒久的な解決策はありますか?

2
brentwpeterson

そのためのプラグインがあります。 http://wordpress.org/plugins/disable-xml-rpc/ /

自分でフィルタを書くこともできます

add_filter('xmlrpc_enabled', '__return_false');

このコードにあなたのテーマのfunctions.php(wp-content/themes/your_themeにある)を追加するだけです。

ただし、テーマを更新しても変更内容が消えないように、子テーマ( http://codex.wordpress.org/Theme_Development )を作成することをお勧めします。

あるいは、WordPressの調整をすべて加えるプラグイン( http://codex.wordpress.org/Writing_a_Plugin )を作成することもできます。

私はまたよりよい保護のために次を加えます:

/**
 * 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);
4
YaFred

あなたのサーバがApacheの場合、あなたの.htaccessに1行でWordPressに到達する前にアクセスをブロックすることができます。

Redirect 403 /xmlrpc.php

応答を短くするために別の行を追加することができます。

ErrorDocument 403 "no"

これはごくわずかな応答(2バイトとHTTPヘッダー)を送信し、トラフィックを改善するためにリソースを節約します。

9
fuxia

他の方法はこれをあなたの.htaccessファイルに入れることです:

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