WordPress で XML-RPC を無効にする方法

公開: 2022-09-19

xmlrpc.php ファイルについて検索し、WordPress でそれを無効にする方法を教えてください。 この記事では、xmlrpc.php とは何か、およびそれを無効にする方法について説明します。

システム間の通信方式を標準化することで、WordPress 環境外のアプリケーションから XML-RPC 仕様を介して WordPress と通信することが可能になります。

当初から、この仕様は WordPress コミュニティにとって非常に価値のあるものでした。 それがなければ、WordPress はインターネットの他の部分から隔離されていたでしょう.

ただし、xmlrpc.php にはいくつかの欠点もあります。 xmlrpc.php ファイルの脆弱性が発見されて以来、WP REST API は WordPress の重要なコンポーネントになりました。 これにより、WordPress が他のソフトウェア プログラムとやり取りする方法が大幅に強化されます。

この記事の目的は、xmlrpc.php とは何か、これを無効にする必要がある理由、および無効にする方法を説明することです。

また、最高の WordPress セキュリティ プラグインに関する記事を確認することをお勧めします。

xmlrpc.php ファイルは何ですか?

このセクションの目的は、「XML-RPC PHP とは何ですか?」という質問に答えることです。 XML-RPC 仕様は、WordPress と他のシステム間の通信に使用できます。

HTTP をトランスポート プロトコルとして使用し、XML をエンコード プロトコルとして使用することで、XML-RPC はこれらの通信で使用されるプロトコルを標準化できます。

WordPress は、インターフェースとして XML-RPC を使用する b2 ブログ ソフトウェアから 2003 年にフォークされました。 xmlrpc.php というファイルがシステムのルート ディレクトリにあり、この機能のコードが含まれています。 XML-RPC は主に廃止されていますが、このファイルは引き続き使用できます。

WordPress の初期のバージョンでは、XML-RPC を無効にすることがデフォルト設定でした。 バージョン 3.5 以降、WordPress モバイルアプリと WordPress インストール間の通信をサポートするためにデフォルトで有効になっています。

WordPress バージョン 3.5 より前では、WordPress モバイルアプリは、サイトが XML-RPC で構成されている場合にのみコンテンツを投稿できました。 これは、アプリが WordPress を実行していなかったことが原因でした。 代わりに、xmlrpc.php を使用して WordPress サイトと通信していました。

さらに、XML-RPC は、WordPress と他のブログ プラットフォーム間、および WordPress と WordPress モバイル アプリ間の通信に使用されます。

XML-RPC はピンバックとトラックバックに使用できます。 また、Jetpack プラグインのバックエンドとしても機能し、自己ホスト型 WordPress サイトが WordPress.com のメンバーになることを可能にしました。

REST API が WordPress コアに統合されたため、xmlrpc.php ファイルを使用しなくなりました。 このファイルを使用する代わりに、REST API を使用して、WordPress のモバイル アプリ、デスクトップ クライアント、Jetpack プラグイン、およびその他のシステムやサービスと通信できるようになりました。

また、REST API はより幅広いシステムとの統合が可能であり、その柔軟性は xmlrpc.php よりも優れています。 XML-RPC は REST API に置き換えられたため、問題を回避するには、Web サイトで xmlrpc.php を無効にする必要があります。

XML-RPC を無効にする必要があるのはなぜですか?

xmlrpc.php ファイルは、WordPress サイトの XML-RPC 対応の脆弱性をハッカーに公開する可能性があるため、無効にする必要があることに注意してください。

WordPress の外部との通信に XML-RPC を使用する必要はなくなりました。 サイトをできるだけ安全に保ちたい場合は、無効にする必要があります。

このため、WordPress は常に下位互換性があります。 WordPress Web サイトに関連付けられている WordPress プラグインとテーマを常に更新する必要があります。

Web サイトで XML-RPC が有効になっている場合、ハッカーはそれをツールとして使用して、Web サイトに DDoS 攻撃を仕掛けることができます。 彼らは xmlrpc.php モジュールを使用して、あなたのサイトへの多くの pingback を生成することができます。これにより、サーバーが過負荷になり、Web サイトがダウンする可能性があります。

さらに、xmlrpc.php はリクエストごとに認証情報も送信するため、ハッカーがこの情報を傍受し、それを使用して Web サイトへのアクセスを試みる可能性があります。 このブルート フォース攻撃により、ハッカーが悪意のあるコードを実行したり、コードを削除したり、さらにはデータベースを損傷したりする可能性があります。

XML-RPC が有効になっていることを確認する方法は?

Web サイトにアクセスするには、次のリンクをクリックしてください: WordPress XML-RPC Validation Service。

ドメイン名を入力したら、[チェック] ボタンをクリックします。

WordPress で xmlrpc が有効になっていることを確認する

テストが成功すると、XML-RPC が有効になり、すぐにオフにする必要があります。

WordPress プラグインを使用して XMLRPC を無効にする

さまざまな理由から、サイトの所有者は XMLRPC 機能を無効にしたい場合があります。 これを行うには、Disable XML-RPC などのさまざまなプラグインを使用できます。

Disable XML-RPC プラグインを使用して XMLRPC を無効にします。

Disable XML-RPC Plugin を使用して XMLRPC 機能を無効にする方法を説明します。 WordPress 管理パネルにログインしてください。

1. [プラグイン] をクリックし、[新規追加] をクリックします。

2. 検索ボックスに「XML-RPC を無効にする」と入力します。 その後、Disable XML-RPC プラグインをインストールします。

WordPress に新しいプラグインをインストールする

3. プラグインを有効にすると、準備完了です。 次に、XML-RPC を無効にします。

インストール CML-RPC プラグインを無効にする

このプラグインには、XML-RPC が無効になっているかどうかを確認するために使用できる XML-RPC Validator があります。 XML-RPC が無効になっている場合、失敗メッセージが表示されます。 そうでない場合は、このプラグインで無効にすることができます。

プラグインを使用して XML-RPC および REST API アクティベーションを構成する

REST XML-RPC データ チェッカー プラグインを使用すると、Web サイトで REST API と xmlrpc.php をよりきめ細かく構成できます。

プラグインをインストールして有効化したら、設定の REST XML-RPC データ チェッカー タブをクリックした後、XML-RPC タブをクリックします。

プラグインを使用すると、サイトで有効にする xmlrpc.php の機能を正確に指定できます。 完全に無効にすることも可能です。 プラグインには、必要に応じて REST API を制御できるタブもあります。

プラグインなしで XMLRPC を無効にする

Web サイトに別のプラグインを追加したくない場合は、フィルターまたは .htaccess ファイルを使用して xmlrpc.php を無効にすることができます。 両方のオプションを一緒に考えてみましょう。

フィルターを介して xmlrpc.php を無効にする

xmlrpc_enabled フィルターを使用すると、xmlrpc.php を非常に簡単に無効にすることができます。 この関数を追加して、Web サイトでアクティブにする必要があります。

 add_filter( 'xmlrpc_enabled', '__return_false' );

関数は、テーマの関数ファイルに追加できます。 .htaccess ファイルは、Apache を使用してホスティング プロバイダーに接続しているかどうかに応じて、cPanel または FTP を使用して編集することもできます。

WordPress の __return_false 関数はブール値の false 条件を返します。 このフィルターは、ログイン ユーザーを必要とする操作のみをブロックします。

XMLRPC サーバーのすべての操作を無効にするには、すべてのメソッドから登録を解除する必要があります。 これを実現するには、xmlrpc_methods フィルターにフックする必要があります。

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

xmlrpc.php ファイルは、リクエストが行われるとクラス wp_xmlrpc_server のオブジェクトを作成します。 wp-includes フォルダー内には、メソッドと呼ばれるプロパティを含むクラス ファイルがあります。

メソッド プロパティには、XML-RPC 要求を介してアクセスできる関数の名前の配列が含まれています。

関数がこの配列に含まれていない場合、関数はエラー メッセージとともに返されます。 したがって、配列を空にすると、関数を使用できなくなることが保証されます。

.htaccess を使用して XML-RPC を無効にする

.htaccess を使用して XML-RPC を無効にするには、いくつかの簡単な手順が含まれます。 これは、xmlrpc.php .htaccess を無効にする方法です。

  • FTP またはファイル マネージャーを使用して、Web サイトのルート ディレクトリに移動できます。
  • .htaccess ファイルを開く必要があります。
  • 次のコードを .htaccess ファイルに追加する必要があります。
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx は、xmlrpc.php へのアクセスを許可したい IP アドレスに置き換えることができます。 WordPress から xmlrpc.php を完全に削除したい場合は、この行を削除してください。

Apache/Nginx で XMLRPC を無効にする

Apache/Nginx で XMLRPC を無効にすることも簡単なプロセスです。 xmlrpc.php を無効にするには、次のコードを Apache 構成ファイルに追加する必要があります。

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Nginx 構成ファイルで次のコードを使用すると、xmlrpc.php を無効にすることができます。

 server { ----------- location /xmlrpc.php { deny all; } }

さまざまな Linux ディストリビューションで XML-RPC 攻撃を検索して見つける方法は?

さまざまな Linux ディストリビューションで XML-RPC 攻撃を探している場合は、次のコマンドを使用して xmlrpc.php 攻撃を阻止できます。

Apache がインストールされた CentOS サーバー:
 # grep xmlrpc /var/logs/httpd/access.log
Ubuntu で Apache を使用する場合:
 # grep xmlrpc /var/logs/apache2/access.log
Nginx ベースのサーバーの場合:
 # grep xmlrpc /var/logs/nginx/access.log
cPanel ベースのサーバーの場合:
 # grep xmlrpc /home/username/logs/access.log

攻撃を受けている WordPress サイトで前のコマンドが実行された場合、次の出力が表示されます。

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

XML-RPC.php ファイルを有効にしておくべき場合

XML-RPC を有効にすると有利な状況がいくつかあります。これらはその一部です。

  • 何らかの理由でバージョン 4.4 以降に更新できない古い Web サイトがある場合、REST API を使用できません。
  • プログラムは、通信に使用している Web サイトの REST API にアクセスできません。
  • XML-RPC の動作を必要とする一部のサードパーティ アプリケーションを統合するため。

ただし、上記の批判はいずれも、XML-RPC および xmlrpc.php エクスプロイトを引き続き使用する十分な理由ではないことに注意してください。

WordPress がある唯一の理由は、下位互換性があることです。 そのため、古いバージョンの WordPress を使用している場合にのみ使用する必要があります。

サイトを最新の状態に保ち、最新のソフトウェア バージョンをサポートしたい場合は、xmlrpc.php を無効にする必要があります。

WordPress での XML-RPC 機能のテスト

さらに、WordPress のテスト オプションを使用して、Web サイトが XML-RPC リクエストの受信を正常に無効にされていることを確認できます。

この目的のために、WordPress モバイルアプリを携帯電話にダウンロードすることができます。 このアプリケーションには Android 版と iPhone 版があります。 デバイスにアプリをインストールしたら、[既存のサイト アドレスを入力してください] をタップして使用を開始します。

このサイトで XML-RPC サービスが無効になっているというエラー メッセージが表示されたら、完了です。 これは WordPress xmlrpc.php 403 禁止メッセージです。

結論

XML-RPC 仕様は、外部アプリケーションやシステムとの通信を可能にするために、WordPress が作成される前に開発されました。 この仕様にはいくつかのセキュリティ上の欠陥があり、Web サイトが攻撃に対して脆弱になる可能性があります。

REST API を使用すると、サイトが他のプログラムと通信できるようになり、心配することなく xmlrpc.php を無効にすることができます。 Web サイトのセキュリティを強化したい場合は、前述の手順に従ってください。