あやしい定期的なアクセスをブロックする
WP-OptimizeはWordPressのサイトヘルスに,404(ページがない)を報告してくれているよだ.
いっこうに404アクセスが減らないので,少しちゃんと内容を確認してみた.記録には,xmlrpc.phpともう一つのファイルにアクセスしているようだが,それが定期的であると判断できた.そこで,Aiに聞いてみると.セキュリティ的にリスクがあるのでブロックすることを勧められた.
サイトヘルスの内容
WP-Optionパフォーマンス -> Issues impacting your site performance “123 URLs with many 404 Not Found requests確認”
数日間の記録であるが,123 URLsにサーチを掛けているようである.
対策は,
「.htaccess」に以下のコードを追記した.これによりxmlrpc.phpへのアクセスは門前払いとなる.
今後,様子をみることにする.
<Files "xmlrpc.php">
Require all denied
</Files>
AIに聞いてみた!
その内容は以下の通り
AIに聞いてみた! [Q1]・・・
Q : xmlrpc.phpに対して定期的な時間でアクセスされている記録がある.wordpressのサイトヘルスにはnot found requestとして記録されている.セキュリティー上リスクが高いと考えられか
ChatGPT:
はい、ご指摘の通り、xmlrpc.php
に対して 定期的なアクセス(特に Not Found として記録されるようなリクエスト) がある場合、セキュリティリスクの兆候である可能性が高いです。
特に WordPress サイトにおいては、xmlrpc.php
は過去に多くの悪用事例があるため、使用していない場合は無効化することが強く推奨されます。
✅ なぜ xmlrpc.php
へのアクセスはリスクになるのか?
リスク | 内容 |
---|---|
🔐 ブルートフォース攻撃 | XML-RPC は system.multicall という機能で「1リクエストに複数ログイン試行」が可能。大量のログイン試行を効率的に実施される可能性があります。 |
🌐 DDoS攻撃の踏み台 | pingback.ping を悪用し、他サイトへのDDoSに加担させられる(反射型攻撃) |
👻 自動Botによる脆弱性探索 | 実際に xmlrpc.php が有効かどうかをスキャンするBotが多数存在します |
✅ 「Not Found Request」に出ているのに危険?
はい、それでも危険性はあります。
xmlrpc.php
が実際には削除・ブロックされている(またはルールで遮断されている)ために「Not Found」になっていても、- 攻撃対象としてスキャンされ続けているという事実自体が、Botから監視対象にされていることを意味します。
✅ 推奨対応策(使っていない場合)
🔒 1. アクセス完全遮断(.htaccessで)
apache:
全部のアクセスを制限する場合(以下のコード)<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
一部サービスを許可する場合(以下のコード)
<Files "xmlrpc.php">
Order Deny,Allow
Deny from all
Allow from 203.0.113.5
</Files>
🔒 2. Nginx でブロック
nginx:(以下のコード)location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
🔒 3. プラグインでブロック(コード不要)
プラグイン | 説明 |
---|---|
❗ Disable XML-RPC | 完全無効化。軽量で安全。 |
❗ Wordfence Security | xmlrpc.php に対する攻撃検出・制限・通知が可能 |
❗ All In One WP Security | ブロック設定のGUI対応あり。簡単に遮断可 |
✅ 使用しているか確認するべきサービス
サービス | xmlrpc.php 必要か? |
---|---|
Jetpack(旧バージョン) | ✅ 必要(新バージョンは REST API 対応済) |
WordPressモバイルアプリ | ✅ 必要 |
IFTTTなど連携投稿系 | ✅ 場合によっては使用 |
それ以外/使っていない | ❌ 無効化推奨 |
🛡 サイトヘルスでNot Foundと記録される場合の意味
- サイト自体が「
xmlrpc.php
はもう存在しない(またはアクセスできない)」と認識している - しかし外部からリクエストが来続けている(Bot or 攻撃者)
→ アクセスはブロックしつつ、ログに残さないようにすることがベスト
✅ まとめ
質問 | 回答 |
---|---|
xmlrpc.php への定期的アクセスはリスク? | ✅ はい、攻撃スキャンの可能性が高い |
Not Foundでも問題ある? | ✅ アクセスしようとしている事実自体が警戒対象 |
対策は? | ❌ 使用していなければ .htaccess またはプラグインで遮断すべき |
AIに聞いてみた! [Q2]・・・
Q2 : wordpressのルートディレクトリにある”.htaccess”ファイルに”xmlrpc.php”へのアクセスをブロックする設定を記載するのでよいか?
ChatGPT:
はい、WordPress のルートディレクトリにある .htaccess
ファイルに xmlrpc.php
へのアクセスブロックを記載するのは、非常に適切なセキュリティ対策です。.htaccess
は Apache サーバーでのディレクトリごとのアクセス制御が可能な設定ファイルで、xmlrpc.php
への不要なアクセスを効率的に遮断できます。
✅ 推奨される .htaccess
の記述例
以下のコードを .htaccess
の末尾または WordPressのデフォルトルールの**外側(下)**に追加します:
apache:<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
🔒 より新しい Apacheバージョン(2.4 以降)向けの記述(推奨)
Apache 2.4 以降を使用している場合はこちら:
apache:<Files "xmlrpc.php">
Require all denied
</Files>
📌 記述場所の注意点
.htaccess
ファイルの構成:
apache:# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
...
</IfModule>
# END WordPress
# xmlrpc.php アクセス拒否(←このように WordPressブロックの外に記述)
<Files "xmlrpc.php">
Require all denied
</Files>
✅ ブロックされるとどうなる?
https://yourdomain.com/xmlrpc.php
にアクセスしても、403 Forbidden が返されます- ブラウザやBotからのアクセスも無効化されます
- WordPressサイトの通常の動作には影響ありません(
xmlrpc.php
を使っていない限り)
✅ 例外:xmlrpc.php が必要な場合は?
一部サービスだけ許可するには IP制限付き設定も可能:
apache:<Files "xmlrpc.php">
Order Deny,Allow
Deny from all
Allow from 203.0.113.5
</Files>
✅ まとめ
項目 | 内容 |
---|---|
.htaccess に書いてよいか? | ✅ 問題なし。最もシンプルで効果的な遮断方法 |
推奨の書き方 | Apache 2.4 以降なら Require all denied |
影響 | xmlrpc.php を使用していなければサイトには一切影響なし |
目的 | 不正アクセス、スキャン、DDoS踏み台化などのリスクを軽減 |
編集履歴
2025/04/16 Mrはりきり