WordPress サイトを運営していると、サーバー側のアクセス統計と WordPress(Site Kit by Google など)の訪問者数が大きく食い違うことがあります。
- サーバー側:転送量・リクエスト数・ユニークアクセスが異常に多い
- WordPress ダッシュボード:訪問者数は平常通り
このような乖離が起きている場合、bot(クローラー)による大量アクセスが原因である可能性が高いです。
しかも、これは XSS や SQL インジェクションのような“脆弱性攻撃”ではなく、REST API(wp-json)への過剰アクセスによって発生する“サーバー負荷型の攻撃”であることが多いのです。
REST API(wp-json)へのアクセスがサーバー負荷を生む理由
WordPress の REST API は、以下のような URL でアクセスできます。
https://自分のドメイン/wp-json
本来はテーマやプラグイン、外部サービスが利用するための仕組みですが、
bot がここを無制限に叩くと、PHP が毎回起動し、サーバー側に負荷が蓄積します。
セキュリティ診断では“問題なし”でも起きる
興味深いのは、以下のような診断をすべてクリアしていても、この現象は起きるという点です。
- XSS(クロスサイトスクリプティング) → 問題なし
- SQL Injection → 問題なし
- マルウェア検出 → 問題なし
つまり、脆弱性がなくてもサーバー負荷は上がるということ。
攻撃というより「bot の過剰アクセスによる迷惑行為」に近い状態です。
XO Security で REST API を保護すると wp-json アクセスが激減した
REST API のアクセスを制御する方法はいくつかありますが、
最も手軽で効果が高いのが XO Security プラグインです。
設定画面で REST API の保護項目にチェックを入れるだけで、
wp-json への不要なアクセスをブロックできます。
結果として、
- サーバー側の転送量が減少
- リクエスト数が安定
- WordPress ダッシュボードの訪問者数と乖離が縮小
という効果が得られます。
セキュリティシールの“貼り忘れ問題”にも注意
セキュリティサービスによっては、
ログイン方法が複数あり、どこからログインしたかによってシールが貼られたかどうかが変わることがあります。
「貼ったつもりが貼れていなかった」
というだけで、実際にはサイトは安全な状態だった、というケースもあります。
また、攻撃者に情報を与えないためにも、
使用しているプラグイン名は公開しないのが賢明です。
SSL(TLS)の表現が混乱しやすい理由
SSL という言葉は、実は 2 つの意味で使われています。
表現 実際の意味
SSL と呼ばれるが実態は TLS1.0 / 1.1 既に破綻した古い暗号化方式
SSL と呼ばれるが実態は TLS1.2 以上 現在主流の安全な暗号化方式
つまり、SSL という言葉だけでは安全性を判断できないということです。
現在のウェブでは TLS1.2 以上が必須です。
まとめ:サーバー負荷の原因は“脆弱性”ではなく“REST API の過剰アクセス”だった
- サーバー統計と WordPress ダッシュボードの乖離は bot の可能性が高い
- REST API(wp-json)へのアクセスが負荷の原因になりやすい
- XO Security で REST API を保護すると負荷が大幅に軽減
- セキュリティシールの貼り忘れはログイン方法の違いが原因
- SSL という言葉は古い暗号化と新しい暗号化の両方を指すため混乱しやすい
WordPress サイトの運営では、
「脆弱性がない=安全」ではなく、
“サーバー側の負荷”という別の視点を持つことが重要です。