経緯
サイトへのアクセスが急増しているタイミングがあり調べてみたところ、bot系のスパイダー・クローラーっぽかったので、 .htaccess
でブロックすることにしました。
単純にアクセスが気味が悪い、というだけならばまだ良いかもしれませんが、どこでどう使われているか分かりませんし、場合によってはアクセスログで不必要にレンタルサーバ等の契約上の容量を消費してしまう、という点も気になる部分かもしれませんので。
対策
検索すると robots.txt
でアクセスを抑制する方法がヒットしたりしますが、このテの類のスパイダーやクローラーがお行儀良く robots.txt
に従ってくれるとも限らないと考えて .htaccess
でブロックすることにしました。
これはこれでサーバの負荷が気になるところですが、先述の点と照らし合わせて今回はこちらの手法を選びました。
# block bot spider/crawler and foreign search engine spider/crawler
SetEnvIf User-Agent "archive.org_bot" denybot
SetEnvIf User-Agent "ia_archiver" denybot
SetEnvIf User-Agent "special_archiver" denybot
SetEnvIf User-Agent "AhrefsBot" denybot
SetEnvIf User-Agent "Baiduspider" denybot
SetEnvIf User-Agent "bidswitchbot" denybot
SetEnvIf User-Agent "BLEXBot" denybot
SetEnvIf User-Agent "coccocbot" denybot
SetEnvIf User-Agent "CriteoBot" denybot
SetEnvIf User-Agent "DataForSeoBot" denybot
SetEnvIf User-Agent "Scrapy" denybot
SetEnvIf User-Agent "GrapeshotCrawler" denybot
SetEnvIf User-Agent "ias-sg" denybot
SetEnvIf User-Agent "MegaIndex" denybot
SetEnvIf User-Agent "MJ12bot" denybot
SetEnvIf User-Agent "PetalBot" denybot
SetEnvIf User-Agent "Pinterestbot" denybot
SetEnvIf User-Agent "proximic" denybot
SetEnvIf User-Agent "SeznamBot" denybot
SetEnvIf User-Agent "SemrushBot" denybot
SetEnvIf User-Agent "SerendeputyBot" denybot
SetEnvIf User-Agent "SMTBot" denybot
SetEnvIf User-Agent "Superfeedr" denybot
SetEnvIf User-Agent "trendictionbot" denybot
SetEnvIf User-Agent "VelenPublicWebCrawler" denybot
SetEnvIf User-Agent "WooRank" denybot
SetEnvIf User-Agent "YandexBot" denybot
SetEnvIf User-Agent "ZoominfoBot" denybot
<RequireAll>
Require all Granted
Require not env denybot
</RequireAll>
気になった bot 系を含めてこのような感じで。
参考
- Apache(.htaccess)で迷惑Botクローラーなどのアクセスを拒否
- PetalBot を拒否する | Sirius のブログ
- User-Agentのアクセス制限でApacheへの攻撃をブロックする – サーバー構築と設定 ~初心者にも分かりやすく解説~
- Apache | Requireディレクティブ:アクセスの許可や拒否などのアクセス制限を行う(Apache2.4以降)
- 迷惑ボットMJ12bot/v1.4.5によるクロールをrobot.txtで停止する方法 | OXY NOTES
- あやしい MJ12bot のアクセスを規制する – うしぶろ
- 最近良く見かけるBOTについて調べてみました。 | クロジカ
- DotBot という crawler からのアクセス。