XML-RPCを使用するPHPアプリケーションを実行していますか? XML-RPC攻撃を阻止し、Webサイトの応答性、パフォーマンス/リソース使用量を改善する方法を学びます。
XML-RPCを使用するPHPアプリケーションを実行している場合は、これらのリクエストをブロックするか、少なくともリクエストを事前に承認されたIPのリストに制限することを検討してください。
これにより、Webサイトのセキュリティが強化されるだけでなく、Webサイトの応答性、パフォーマンス、リソースの使用量も向上します。
しかし、XML-RPCとは何であり、それはあなたのWebサイトやブログと何の関係があるのでしょうか?
XML-RPCプロトコルは、 Dave Winerによって作成されました。 、Mohsen Agsen、Bob Atkinson、およびChris Aldrich(1998年)。
最初の3人はMicrosoftで、ChrisAldrichはUserLandで働いていました。
XML-RPCは、外部システムに、HTTPがトランスポートメカニズムとして機能し、XMLがエンコードメカニズムとして機能するサイトと通信する方法を提供します。
とてもシンプルで早い段階で人気を博しました。
すべての主要な言語と環境に実装がありました。
たとえば、PythonとMacintoshOSに組み込まれています。主なブログAPIはXML-RPCで実行されました。
PHPでは、XMLRPCは、XMLRPCサーバーおよびクライアント機能をPHPにもたらした拡張機能です。
ただし、ライブラリとその依存関係が数年間更新されていないため、拡張機能はPHP8.0でバンドルされていません。
多くのコンテンツ管理システムは、WordPressを含むXML-RPCを使用しています。
WordPressでは、XML-RPCサポートにより、多くの人気のあるウェブログクライアントを使用してWordPressブログに投稿できます。
https://webcomm.dev/xmlrpc.php(「webcomm.dev」はWordPressドメインの名前です)にアクセスすると、完全なURLを確認できます。
また、他のWebサイトがWordPressWebサイトと対話できるようにします。
しかし、多くの場合、これは必要ないか、オプションとして存在することに気付かない場合があります。
PHP 8.0以降、拡張機能が削除されたという事実に加えて、XML-RPCリクエストを武器にして、Webサイトの応答を遅くしたり、まったく応答しなかったりすることもできます。
これは多くの場合、ファイルを総当たり攻撃して、すべてのピンバックとトラックバックに応答しようとするときにWebサイトの速度を低下させることによって行われます。
これがあなたを傷つけないようにする簡単な方法の1つは、アプリケーションをホストしているWebサーバーがModSecurityを使用していることを確認することです。
ModSecurityは、SQLインジェクション、DOS、その他の一般的なHTTP攻撃などの一般的なWebベースの攻撃を支援するWebアプリケーションファイアウォール(WAF)です。
Web Hosting Magicでウェブサイト/アプリケーションをホストしているお客様 ModSecurityを使用して、このような攻撃を軽減できます。
しかし、あなたが保護されている間、セキュリティは常に集合的な努力でした。
想定どおりに機能する唯一の方法です。
ウェブサイト/アプリケーションをより適切に保護する最も簡単な方法は、.htaccessを介してリクエストを無効にすることです。
これを行うには、cPanelのファイルマネージャーまたはSSH端末を介してファイルを編集します。
- まず、cPanelアカウントにログインします。
- ファイルを探す セクションをクリックし、ファイルマネージャをクリックします 。
- これにより、アカウントのpublic_html(またはWebサイトコンテンツのドキュメントルート)に移動します。
- .htaccessを編集するか、.htaccessという名前の新しいファイルを作成して、次のコードをファイルに貼り付けます。
# Block xmlrpc.php requests using the files directive <Files xmlrpc.php> Require all denied # Require ip $xxx.xxx.xxx.xxx </Files> ======== OR ======== # Block xmlrpc.php requests using the filesmatch directive (preferred) <FilesMatch "^xmlrpc\.php$"> Require all denied # Require ip $xxx.xxx.xxx.xxx </FilesMatch>を要求
https://cdn.webhostingmagic.com/knowledgebase/disallow_xmlrpc.txtにアクセスして、これをプレーンテキストとしてダウンロードできます。
特定のIPからのXML-RPCリクエストを許可する場合は、$xxx.xxx.xxx.xxxをIPアドレスに置き換えます。
ファイルを保存して閉じます。
.htaccessファイルを編集または作成する方法がわからない場合は、チームでサポートチケットを開いて、これを行うことができます。
WordPressを実行している場合は、プラグインを使用して同じ結果を得ることができます。
ただし、お客様には、プラグインを増やすのではなく、減らすことを常にお勧めします。
そのためには:
- wp-adminにログインします
- プラグインにアクセスします>>新規追加 セクション。
- XML-RPCを無効にするを検索します 。
- プラグインをインストールします。
専用サーバー、プライベート仮想マシン、またはVPSのお客様は、サポートポータルにアクセスして、「xmlrpc.php」をサーバー全体で無効にするようにリクエストできます。
この短いチュートリアルが、XML-RPC攻撃やエクスプロイトからWebサイトをより適切に保護するのに役立つことを願っています。
PHP XML-RPCの詳細については、http://www.xmlrpc.com/
にアクセスしてください。