XML-RPCは、ユーザーがサードパーティのアプリ、ツール、サービスを使用してWordPressウェブサイトに接続できる、WordPressのコアAPIです。残念ながら、過去にはハッカーがXML-RPCを悪用してWordPressウェブサイトへのアクセスを試みる方法を見つけてきました。
WPBeginnerでは、何千ものユーザーがWordPressサイトを保護し、XML-RPCを無効にするのを支援してきました。技術的な知識に応じて、さまざまな方法があることがわかりました。
たとえば、.htaccess ファイルにアクセスするか、コードスニペットを追加することで XML-RPC を無効にすることができます。一方、初心者であれば、コードを編集せずにコアファイルを無効にするプラグインがあります。
この記事では、さまざまな方法を使用してWordPressでXML-RPCを簡単に無効にする方法を説明します。

WordPressにおけるXML-RPCとは?
XML-RPCは、2012年にWordPress 3.5がリリースされて以来、デフォルトで有効になっているコアWordPress APIです。これにより、開発者はXMLとHTTPSプロトコルを使用して、WordPressウェブサイトに接続して対話することができます。
簡単に言うと、リモートでブログにアクセスして公開するにはXML-RPCを有効にする必要があります。たとえば、モバイルアプリを使用してサイトを管理したり、Uncanny AutomatorやZapierなどの自動化サービスに接続したりする場合です。
ただし、ウェブサイトでモバイルアプリを使用していない場合は、一部のWordPressセキュリティ専門家がXML-RPCを無効にすることを推奨する場合があります。これにより、ウェブサイトをハッキングするために悪用される可能性のあるドアが閉じられます。
それはさておき、WordPressでXML-RPC APIを簡単に無効にする方法を見てみましょう。.htaccessメソッドは、リソース消費が最も少ないため最良であり、他のメソッドは初心者にとってより簡単です。
方法1:.htaccessでWordPress XML-RPCを無効にする(上級者向け)
この方法は、サイトの.htaccessファイルを編集する必要があるため、上級者向けです。初心者は方法2または3を使用することをお勧めします。
この方法には、自分やチームにリモートアクセスを許可しつつ、他の全員を制限できるという利点があります。また、WordPressに渡される前にXML-RPCリクエストを無効にするため、WordPressのパフォーマンスに悪影響を与えることもありません。
次のコードを.htaccessファイルに追加する必要があります。これは、FTPクライアントまたはファイルマネージャーを使用してサイトに接続することで実行できます。また、All in One SEOユーザーは、下のスクリーンショットで確認できるように、プラグインに組み込まれたエディタツールを使用してコードスニペットを追加できます。
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

特定のユーザーにサイトへのリモートアクセスを許可したい場合は、5行目の「123.123.123.123」をそのIPアドレスに置き換えるだけです。複数のIPアドレスはスペースで区切って追加できます。
または、XML-RPCを完全に無効にしたい場合は、5行目をすべて削除してください。
注意: .htaccessが見つからない場合は、WordPressで.htaccessが見つからない理由に関するガイドを参照してください。
方法 2: コードスニペットで WordPress XML-RPC を無効にする (推奨)
この方法では、WordPressウェブサイトにコードを追加する必要があります。以前にこれを行ったことがない場合は、WordPressでカスタムコードスニペットをコピーして貼り付ける方法に関するガイドを参照してください。
WPCodeは、WordPressサイトにコードを追加する最も簡単で安全な方法です。コードスニペットを管理し、サイトを壊す可能性のあるエラーを防ぎます。
この方法では、WPCode の組み込みコードスニペットのいずれかを使用して XML-RPC を無効にします。
まず、無料のWPCodeプラグインをインストールする必要があります。手順については、WordPressプラグインのインストール方法に関するステップバイステップガイドを参照してください。
アクティベートしたら、コードスニペット » スニペットを追加に移動してください。WPCodeライブラリには、XML-RPCを無効にするスニペットが既に含まれています。「xml」で検索すると見つかります。
見つけたら、「スニペットを使用」ボタンをクリックする必要があります。

次に、「アクティブ」トグルを「オン」の位置に切り替える必要があります。
最後に、サイトでスニペットを有効にし、XML-RPC APIを無効にするために「更新」ボタンをクリックしてください。

方法3:プラグインでWordPress XML-RPCを無効にする
これは、コードスニペットプラグインでウェブサイトに他のカスタマイズを追加したくない場合に使用できる簡単な方法です。
Disable XML-RPC-APIプラグインをインストールしてアクティブ化するだけです。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドを参照してください。
プラグインはすぐに機能し、XML-RPCを無効にします。
プラグインを設定するには、XML-RPCセキュリティ » XML-RPC設定に移動できます。たとえば、IPアドレスをホワイトリストに登録することで、特定のユーザーがXML-RPCにアクセスできるようにすることができます。

WordPress XML-RPC が無効になっていることをテストする
これで、WordPressウェブサイトでXML-RPC APIが正常に無効になったことを確認する必要があります。
また、ブラウザでURL http://example.com/xmlrpc.php にアクセスするだけで、XML-RPCが無効になっていることを確認できます。「example.com」はご自身のウェブサイトのドメイン名に置き換えてください。
XML-RPCが無効になっている場合、「Forbidden: You don’t have permission to access this resource.」というエラーメッセージが表示されるはずです。
この記事がWordPressでXML-RPCを簡単に無効にする方法を学ぶのに役立ったことを願っています。また、WordPressにJavaScriptを簡単に追加する方法や最高のWordPress開発ツールに関するガイドも参照してください。
この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterやFacebookでも私たちを見つけることができます。


イジー・ヴァネック
スニペットをありがとうございます。結局、WPCodeを使用してXML-RPCを無効にしました。それが最も簡単な方法のように思え、XML-RPCを簡単に元に戻すこともできます。素晴らしい!
ピート・メイソン
htaccessでは、次の行:
allow from 123.123.123.123
は私のIPアドレスで編集する必要があるように見えます。しかし、これはどこにも明記されていません—?
クリスティン
無効化とブロックに違いはありますか?
WPBeginnerサポート
ブロックは機能へのアクセスを制限しようとしますが、無効にすると完全にオフになります。無効にすれば、別の方法でアクセスされる心配はありません。
管理者
ラシュミ K
推奨されているプラグインDisable XML-RPCは、過去2年間更新されていません。WordPressの最新3つのリリースでテストされていないと表示されています。
WPBeginnerサポート
未テストの警告に関する当社の見解については、以下の記事をご覧ください。
https://www.wpbeginner.com/opinion/should-you-install-plugins-not-tested-with-your-wordpress-version/
管理者
ニヒル
こんにちは、
xmlrpc.phpへのアクセスを無効にすると、Android/iOSアプリ開発に使用されるWordPress APIへのアクセスも無効になりますか?
WPBeginnerサポート
それは、アプリ自体が使用するAPIによって異なります。
管理者
Vyom
解決策が見つかりました:
nginx設定に以下の情報を追加します:
# nginx xmlrpc.phpリクエストブロック
location /xmlrpc.php {
deny all;
}
Vyom
Apacheの代わりにnginxを使っています。.htaccessは引き続きサイトで使用できますか?
また、このファイルをpublic_htmlディレクトリに保存する必要がありますか、それともその一つ上の階層に保存する必要がありますか?
WPBeginnerサポート
nginxを使用している場合、htaccessは使用できません
管理者
Vyom
返信ありがとうございます。nginxの代替手段はありますか?
WPBeginnerサポート
サイト固有のプラグイン、または記事の前のほうで説明したプラグインを追加します。
Chinecherem Somto
こんにちは、コードを貼り付けるのはウェブサイトのルートにある.htaccessファイルですか?
WPBeginnerサポート
はい、サイトのルートフォルダにある.htaccessファイルに.htaccessコードを追加します
管理者
モジュタバ・レザエイアン
著者様、ありがとうございます。
WPBeginnerサポート
どういたしまして、モジュタバ様
管理者
Bapi
複数のIPまたはIP範囲(例:123.123.123.1、2、3、…… 100、101)をどのように使用しますか?
マルコム
なぜ 123.123.123.123 を許可するのですか?
サービスをまったく使用していない場合、「すべて拒否」を絶対的なものにしないのはなぜですか?
エドワード
コードを正しく読み取れているとすれば、
order deny,allow – deny を allow より前に配置します。deny は「すべて」なので、allow は処理されません。
deny from all – そのままの意味です。
allow from 123.123.123.123 – プレースホルダーです。
固定IPアドレスをお持ちの場合は、順序を「許可、拒否」に変更し、123.123.123.123を自分のIPアドレスに置き換えることができると理解しています。これにより、自分のIPは許可され、他のすべては拒否されます。
David Hoy
ありがとうございます、WP-Beginner様。私は近所で最も悪いWP少年になろうとしており、まさにだからこそ皆さんのところに戻ってきてしまうのです。私の抱える質問ごとに、「簡単な方法はこちらです」そして「正しい方法はこちらです」と言ってくれます
私と私の.htaccessは、htpasswrdと、クライアントが決して必要としないであろうこのXMLRPCの件について、少し話し合うことになります。
皆さんのおかげで、私のネットの片隅が少し安全になりました。MailChimpの言葉を借りれば、「ハイタッチ!」です。
WPBeginnerサポート
Davidさん、こんにちは。
温かいお言葉ありがとうございます。WPBeginnerがお役に立てているようで嬉しく思います
管理者
Cezar
OK、このコードを使用しますが、IFTTTが私のウェブサイトで機能するようにしたいのですが、何を追加する必要がありますか?
# WordPressのxmlrpc.phpリクエストをブロックする
order deny,allow
deny from all
allow from 123.123.123.123
フィルB
こんにちは、
.htaccessを使用してxmlrpc.phpファイルをブロックする手順に従いましたが、機能しているかどうかわかりません。
Wordfence Securityを使用しており、ライブトラフィックビューでxmlrpc.phpファイルへのリクエストが停止していることがわかりますが、アクセスログを確認すると
tail -f /apache2/logs/access_log
リクエストはまだ受信していますが、末尾のコードが 500 から 403 に変更されました。WordFence プラグインから誤ったレポートを受け取っており、まだスパムが大量に送信されているのではないかと心配しています。誰かアドバイスをいただけますか?
ありがとう、
フィルB
David Hoy
ああ、そうです!うまくいっていますね。XMLRPC は禁止されています!
HTTP ステータスコード 403: サーバーはリクエストを理解しましたが、承認を拒否しました。
Raymundo
奇妙な問題が発生しました…
私はIFTTTでWordPressブログを使用しており、すべて正常に動作していましたが、MaxCDNと統合したところ、IFTTTはすぐに動作しなくなりました。調査したところ、問題は無効化されたXML-RPCに関連している可能性があります。
ダッシュボードの「設定」>「書き込み」を確認しても、XML-RPC、リモートパブリッシングなどの項目は見当たりません。optionsのデータベースも確認しましたが、xml-rpcは利用できません/見つかりません。
IFTTTを機能させるためにはXML-RPCを有効にする必要があります。
XML-RPCを再アクティブ化するにはどうすればよいですか?必要なのは、XML-RPCをアクティブ化するために.htaccessまたはfunctions.phpに追加できるスクリプトだけです。
そして、なぜダッシュボードでXML-RPCの機能が失われているのですか?
ありがとうございます!
ムハンマド・アマル・アシュファク
WordPressにこのファイルxmlprc.phpを追加する方法を検索していました。WordPressのバージョンは4.5.3を使用しており、このページにたどり着きました。Jetpackを有効にするとsite_inaccessibleというエラーが発生するため、このPHPファイルを追加する必要があります。このエラーを解決する方法を教えてください。私のサイトは
WPBeginnerサポート
FTP クライアントまたは cPanel のファイルマネージャーを使用して WordPress サイトに接続します。ウェブサイトのルートディレクトリで xmlrpc.php ファイルを探します。もしファイルが存在する場合は、ステップ 2 を試してください。存在しない場合は、WordPress の新しいコピーをダウンロードしてください。解凍して展開し、xmlrpc.php ファイルをサイトのルートディレクトリにアップロードし直してください。
ステップ2:WordPressテーマのfunctions.phpファイルで、XML-RPCを無効にするコードを確認します。
ステップ3:.htaccessファイルとwp-configファイルを確認してください。
管理者
omonaija
サイトでxmlrpcを有効にするにはどうすればよいですか?スマートフォンでWordPressモバイルアプリを使用してログインできません。
WPBeginnerサポート
WordPress サイトでセキュリティプラグインを使用している場合は、その設定を確認してください。
管理者
Mook
やった!このWPフィルターでスクリプトキディ攻撃が修正されました。まだその人物をファイアウォールでブロックしていますが、もっとIPをファイアウォールに追加するために、ホークのようにログを監視する必要はありません。ありがとうございます。
WPBeginnerサポート
だから私たちはSucuriを使っています。
管理者
アレックス
それはSucuriがDisable XMLRPCプラグインのように機能するからですか?
もしそうなら、Disable XMLRPCプラグインを削除できますか?
ありがとう
アレックス
WPBeginnerサポート
Sucuriは、サイトとユーザーの間にファイアウォールのように機能します。ウェブサイトに到達する前に、あらゆる不審なアクティビティをブロックします。
チャド
xmlrpc.php を /etc/httpd/conf/includes/pre_main_global.conf ファイルでサーバー全体で無効にすることには完全に賛成です。しかし、次のような疑問が残ります…特定のプラグインが動作するために xmlrpc.php を「必要」としているかどうかを判断する方法はありますか?アクセスをブロックした結果、2か月後に問題が発生し、その原因が以前に xmlrpc.php をブロックしたことにあると気づかないのではないかと懸念しています。
ログファイルなどで、xmlrpc.php ブロックが原因であることを示す一般的な兆候はありますか?
スミトラ
プラグイン「Disable XML-RPC」をインストールしました。
見てみましょう!
フランク
Android スマートフォンで WordPress アプリを使用して投稿しています。現在ログインできず、ログイン情報も正しいです。得られた応答は「ログインできません。WordPress サイトに接続できませんでした」でした。この WordPress アプリのログインエラーを修正するのを手伝ってもらえませんか。
WPBeginnerサポート
XML RPC を無効にしていた場合、WordPress モバイルアプリでログインできない可能性があります。テーマの functions.php ファイルでこのコードを探してください。
add_filter('xmlrpc_enabled', '__return_false');WordPressで1クリックで使用
それがある場合、削除する必要があります。また、プラグインを無効にしてから、WordPressモバイルアプリでログインできなくなる原因となっているプラグインを見つけるまで1つずつ有効にすることも試すことができます。
管理者
ジョサイア
「allow from 123.123.123.123」はオプションであり、使用する場合は、ご自身のIPアドレス、またはxmlrpc.phpにアクセスする必要があるデバイスのIPアドレスを含めるように更新する必要があります(この記事で例を引用すると良いでしょう)。
ナタリー
XML-RPCを無効にするためにGoodbyeCaptchaプラグインを使用しており、Jetpackが有効な状態でも問題なく動作しています。
お役に立てば幸いです
ATI
申し訳ありませんが、この方法は何度も試しましたが、私にはうまくいきませんでした。実際、これらのコードを.htaccessファイルに追加した後、フロントエンドがダウンしました(訪問者がウェブページへのアクセスをブロックしました)。
グレッチェン・ルイーズ
このように無効にすることで、この問題を防ぐことができますか? http://theaffluentblogger.com/operating-a-website/wordpress-xmlrpc-php-vulnerability-affects-shared-hosting-sites/ 友人のサイトがxmlrpcファイルへの攻撃により継続的にクラッシュしています。
編集スタッフ
はい、ある程度攻撃を防ぐことができます。
管理者
クリストファー・ロス
Keith さん、WordPress では、テーマに関連しない機能を functions.php ファイルから「サイト固有のプラグイン」に移動する傾向があります。これは基本的に、1つのユニークなウェブサイトにのみアクティブ化するプラグインで、そのサイトのテーマに関連しない機能を格納します。
コードを functions.php ファイルに配置することで、同じことを達成できます。
キース・デイビス
クリスさん、ありがとうございます。
皆さん、すでにカバーされているようですね。
https://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/
ところで、コメントシステムはどうなりましたか?
以前はLivefyreで、その後TwitterやFacebookと関連していたようですが、今はどうなっていますか?
キース・デイビス
皆さん、こんにちは。
少し鈍くてすみませんが、「次のコードをサイト固有のプラグインに貼り付けるだけです」について詳しく説明していただけますか?
どのプラグインがサイト固有ですか?