XML-RPCとは?とそのセキュリティリスク対策

WordPressには標準でXML-RPCなるものがついています。

wp_head関数によって自動的に以下のコード内が記述されますが、これはそもそも何をするためのものなのでしょうか?

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://yourdomain.com/xmlrpc.php?rsd" />

XML-RPCとは?

簡単に言うと、投稿などをサードパーティ製のブログクライアントなどを通して追加・更新するための仕組みを提供してくれるものです。

例えば、Windows Live WriterというソフトはXML-RPCを利用しており、それを通してWordPressの投稿・更新を行うことができるようなっています。

セキュリティ的な問題

一見、XML-RPCを利用したモバイルアプリなどで手軽にWordPressが更新できれば便利に感じるかもしれませんが、外部のアプリなどを通して投稿・更新できてしまうということは、それなりにセキュリティリスクをはらんでいるということにもなります。

XML-RPCを無効にする

その1 フィルターで解決する

functions.phpに以下を記述します。

add_filter('xmlrpc_enabled', '__return_false');

その2 プラグインで解決する

その名もDisable XML-RPCというプラグインがあるので、導入して解決。

その3 .htaccessでXML-RPCファイルにアクセス制限をかけて解決

そもそもxmlrpc.phpファイルにアクセスできないようにしてしまいます。

WordPressのインストールディレクトリにある .htaccess ファイルに以下の記述を追加します。

<Files xmlrpc.php>
order deny, allow
deny from all
allow from 123.456.789.000
</Files>

特定のIPアドレスからアクセスを許可する必要がない場合は、allow from の一文は削除してしまってもOKです。