ホスティングサービスによっては WordPress 用の WAF が用意されている場合もあるけど、Cloudflare は入れた方が圧倒的に安全だと思う。
WordPress のサイトには毎日アホのように不正なアクセスが飛んでくる。主に xmlrpc.php や wp-login.php などに。

Cloudflare では国や ASN(簡単に言うとプロバイダの番号のようなもの)単位で許可やブロックの制御が出来るので IP アドレスでは対応しきれないような場合に非常に役に立つ。
特に、
あたりからの不正なアクセスが多い。オランダに関しては特に悪質なものも多いので国ごとブロックしてしまっていいと思う。
最近では Google 検索も汚染されていて駿河屋やコメリ、コーナンといったサイトに偽装したサイトが増えており、中には .co.jp や .jp ドメインのようなものも存在し、確認してみるとトップページなんかは普通に企業やお店のページなんだけど裏で色々改変されているなんてのも見かける。
Cloudflare では下記のようなコードを書いてそれをブロック対象とすれば日本国内だけのアクセスに限定することが出来る。
not ip.src.country in {"JP"}
ただ、これでは Google や Bing などのボットも除外してしまうことになるためあまり実用的ではない。
少しカスタマイズして /wp-admin や /wp-login.php といったパスへのアクセスを日本限定にすることもできる。なお、lower() は必須ではない。
(
not ip.src.country eq "JP"
and (
starts_with(lower(http.request.uri.path), "/wp-admin") or
starts_with(lower(http.request.uri.path), "/wp-json") or
starts_with(lower(http.request.uri.path), "/wp-login.php") or
starts_with(lower(http.request.uri.path), "/xmlrpc.php")
)
)
既知のボット(cf.client.bot)や検証済みのボット(cf.verified_bot_category)なども使えるので下記のようにすれば、
つまり、「日本国外からのアクセスのうち、既知のボットまたは正規検索エンジンや SEO 関連 Bot を除くすべてのアクセスをブロックする」というものになる。
(
not ip.src.country in {"JP"}
)
and (
not cf.client.bot
)
and (
not cf.verified_bot_category in {
"Search Engine Crawler"
"Search Engine Optimization"
}
)
日本国内の IP でもサクラのサーバーを利用してアクセスしてきたりもするので ipinfo.io や abuseipdb.com で調べて Hosting や Data Center になっている ASN はブロックしてしまってもいいと思う。Twitter 等と外部通信してたりする場合はそれらは許可する必要はあるけれど。
AWS(Amazon)、Google Cloud Platform(Google)、Azure(Microsoft)のサーバーを使った攻撃は特に多いのでこれらの ASN からのアクセスの場合はボットのみ許可する方が良いと思われる。
(
ip.src.asnum in {
7224
8068
8070
8075
8987
12076
14618
15169
16509
36040
39111
139190
396982
} and
not cf.verified_bot_category in {
"Search Engine Crawler"
"Search Engine Optimization"
}
)
上記の ASN と名称は下記の通り。Googlebot の IP や Bingbot の IP も参照されたし。
| ASN | 名称 |
|---|---|
| 7224 | Amazon.com, Inc. (AMAZON-AS) |
| 8068 | Microsoft Corporation (MICROSOFT-CORP-MSN-AS-BLOCK) |
| 8070 | Microsoft Corporation |
| 8075 | Microsoft Corporation |
| 8987 | Amazon Data Services Ireland Ltd (AWS-GOVCLOUD) |
| 12076 | Microsoft Corporation |
| 14618 | Amazon.com, Inc. |
| 15169 | Google LLC |
| 16509 | Amazon.com, Inc. |
| 36040 | Google LLC |
| 39111 | Amazon Data Services Ireland Ltd |
| 139190 | Google Asia Pacific Pte. Ltd. |
| 396982 | Google LLC (GOOGLE-CLOUD-PLATFORM) |
アナリティクスのイベントに出てきて邪魔だなぁという場合はリダイレクトを使って外部サイト(https://www.google.com/ とか)に飛ばせばイベント画面に出てこなくなるが、リダイレクトでは現時点では式ビルダーで cf.verified_bot_category が使えない。
cf.client.bot や Search Engine Crawler、Search Engine Optimization の中にもアクセスしてきてほしくないもの(Semrush や Ahrefs やら ChatGPT やら)もあると思うのでユーザーエージェントによるブロックなども併用する。