WordPress構成ファイルのxmlrpc.phpを無効化する方法【実は攻撃されやすい】

      2021/03/04   1881文字

WordPress構成ファイルのxmlrpc.phpを無効化する方法【実は攻撃されやすい】

今回は、wordpressの構成ファイルで、ちょっとクセのある『xmlrpc.php』を無効化してみます。
このファイルがどういう働きをしているのか、また、ほっとくとどんな影響があるのか、無効化にはどのような方法があるかをチェックします。

xmlrpc.phpとは?どのような影響があるの?

アプリ更新などに関係するファイル


管理人は普段この機能は使わないんですけど、『wordpressアプリ(Googleプレイストアなどにあります)』を使って、アプリから更新や編集をする場合、このファイルが絡んできます(xmlrpc.phpがないとアプリなどから更新ができないなどの例が報告されています)。スマホでサクッと記事を出せるのは、一見便利に見えます。

xmlrpcの影響~実は脆弱性あり・不正ログインなどの攻撃対象になりやすいファイル

しかしこのファイルには『ブルートフォース攻撃など不正ログインなどに狙われやすい』という特徴があります。以前、wordpress脆弱性の記事でも書きましたが、かなりの頻度で狙われている、というデータがあります。

(過去記事リンク)【セキュリティ・脆弱性対策2018】wordpressでサイバー攻撃されやすいファイルってどんなのがあるの?
https://sounds-stella.jp/music-creation/archives/5604

不正ログインされるのはもちろんリスクですし、破られなくてもファイルに大量のアクセスがあることは、サイト負荷で重くなるリスクもあります。

xmlrpc.phpを無効化する方法

特にアプリログインなどを使わないのであれば、攻撃リスクを避ける為に無効化しておいた方が安全といえます。ここではその方法を紹介します。wordpressスマホアプリを使っている場合は、xmlrpc.php無効化すると、アプリからのログイン・更新ができなくなるのでご注意ください。

単純にファイルを消してしまう


FFFTPでサーバーにつないで、ファイルを削除してみます。場所はwordpressをインストールしたフォルダの(アルファベットの順的に)一番最後にあります。管理人が実験したところ、この『xmlrpc.php』を削除しても、wordpressシステムは問題なく動きました。簡単にアタックリスクは避けられそうです。

しかしこの方法には注意点があり、『wordpressコアシステムをバージョンアップした場合、消してもxmlrpc.phpファイルが再度インストールされる』という点です。子テーマいれとかないと元に戻るみたいなイメージです。

パーミッションを他の人がアクセスできないように変える


『000』だとちょいと危ないかなと思ったので、『400』を設定してみました。
これはwordpressの管理画面からというわけでなく、サーバー側で設定します。

htaccessファイルでxmlrpc.phpに対するアクセス制限をかける


web系の技術者の間ではよく使われる方法です。htaccessファイルにdeny(拒否)と書いて、xmlrpc.phpに対するアクセスをハネます(この下のほうにbigin wordpressみたいなことが書いてあります)。


403でファイルにアクセスできなくなりました。テーマのfunctions.phpでハネるという手もありますが、管理人はこの方法を採用しています。

あとがき・まとめ

  • アプリ更新とかしない場合、xmlrpc.phpは攻撃されやすいので、なるべく無効に
  • 単純にファイルを消すと、wordpressアップデート時い復活するので、忘れないように
  • パーミッション設定やhtaccessファイルでのアクセス拒否ができる

まとめるとこんな感じです。特にxmlrpc.phpの機能を使っていない場合は、アタックされやすいということもあるので、なるべくこれらの方法を取り入れて、リスクを減らしておくと、安心してwordpressを使うことができます。『xmlrpc.phpが攻撃されやすい』という点だけでも頭に入れておくと、あとから思い出して対策できるので良いでしょう。


【カテゴリ】 - サイトエラー対策と復旧(wp/php/css)
【タグ】 -

  関連記事

WordPressテーマインストール時、エラーで画面真っ白を復旧させた方法(unexpected T_FUNCTION)
【WordPress4.9.7でのエラー検出】子テーマでindex.phpやCSSヘッダが無いときの『テーマが壊れています』表示への対策
【WordPress】ヘッダーに『” />』みたいな謎の記号が出るんですが?→固定ページ抜粋?・対処法も紹介
【wordpressエラー原因】Parse error: syntax error画面真っ白は、プラグインorサーバーのPHPバージョンが合わない
【wpプラグイン】コンタクトフォーム7の自動返信設定と、なぜか発生した文字化けの対処
WordPressサイトヘルスを『改善が必要→良好』にしたいけど、どうすれば良い?(プラグイン・テーマ・WP/PHPバージョンアップデート)
【ログインページが404】ディレクトリやWordPress アドレス変更でログインできない場合は、データベースからログインできるアドレスに直す
WordPressをcookie関連設定でログイン不可能にしてみた(cookieブロック・トークン削除・ログイン成功cookie削除)
フラッシュ形式のオーディオ・動画プレイヤーが表示されません(Adobe Flash Player終了)
スマホWordPressアプリでログインや、記事更新ができません→xmlrpc無効化してるとできませんが、セキュリティ上必要なこともあります
【PageSpeed Insightsエラー】リクエストしたページを Lighthouse で正確に読み込めません→WPでメンテにしてました
WordPress 5.2がサーバーPHP5.6.2以下で動かなくなる事例~更新や閲覧はできる?バージョンアップの注意点は?