今回の対策はSEOに直結するかわからないけれども、サイトを運営していてページの表示速度を下げる要因なので触れておく。
とあるサイトを公開した後にアクセスログを確認したら衝撃的なログがあった。
そのログというのが、
https://example.com/wp-login
https://example.com/wp-admin
へのアクセスだった。
このサイトは世界ナンバーワンのシェアを誇る某CMSを使用していないので関係ないといえば関係ないけれども、アクセスログに上記のパスで埋め尽くされたことに寒気を感じた。
例えば、当サイトを運営しているSOY CMSでは、上記のアクセスがあると、
上記のフローが開始されて、該当するページがないので、データベースから404NotFound用のテンプレートが読み込まれ、
個人的にSOY CMS NotFoundと読んでいるページが表示される。
SOY CMSの404NotFoundページをカスタマイズしてみよう
冒頭のアクセスログの話に戻り、
https://example.com/wp-login
https://example.com/wp-admin
これらのページへのアクセスで埋め尽くされた背景を考えてみる。
上記のパスは某CMSで運営されているサイトであれば、CMSの管理画面へログインするための画面が表示される。
アクセスしているのはおそらくbotで、自動でログインフォームに対して総当り攻撃を試されている可能性が高い。
※総当り攻撃に関して参考になる記事
某CMSで運営していないのであればいくらアクセスされても一応安全ではあるけれども、こんなしょうもないアクセスでサーバに負荷がかかるのは嫌だ。
サーバに負荷がかかると通常のアクセスの際のページの表示速度が落ちてしまうので、下記のような対応をしておく事にする。(どれが正解かわからない)
・/ルート/wp-login.php等を配置して、中身は何も処理をしない。
→これでSOY CMS 404 NotFoundの出力といった無駄な処理を避ける
・対応できるか調べてないけれども、wp-*からはじまるパスの場合はアクセス制限をかける
当サイトでは前者の静的な処理をするPHPファイルを配置している。
SOY CMSはシェアは少ないものの、それなりに総当り攻撃の報告は受けてきたので、その対処も紹介しておく。
先にSOY CMSであれば、管理画面のURLを特定したいの記事を参考に管理画面のURLを隠蔽する。
その後、下記の個所に何も処理をしないindex.phpを配置しておく
/ルート/cms/admin/index.php
/ルート/soy/admin/index.php
/ルート/soysoy/admin/index.php
これでbotに無駄な処理をされずに済み、ページの表示速度の低下を避けることが出来る。
補足
上記のファイルにアクセスがあった場合、301リダイレクトでトップページへ遷移するのはどうか?と考えたけれども、ページの表示にかかる時間が増えてしまうので、SEO上悪影響になるかもしれないということでリダイレクトは止めた。
余談
最近、今回話題に挙がった某CMSではサイト運営で成果が上がらないという相談を頻繁にあるけど、シェアNo.1故、攻撃の量も圧倒的なNo.1なわけで、サーバの負荷に因る遅延を加味すると、そりゃあ成果は出にくくなるなと。
SOY CMSを使うと良いとは言わないけれども、某CMS以外で良いCMSはいくらでもあるので、成果を出したければ、シェアNo.1は使わない方が良いなと。
関連記事