運営者情報
運営者
メニュー
メニュー
※ ナビ↑はドラッグで左右にスクロール可

Xserverで特定のbotのアクセスを遮断する

※本ページは広告を含み、一部AIを活用して作成しています。

Xserverで特定のbotのアクセスを遮断する

User-Agentに含まれるbot独自の文字列を含んでいるかどうかで、アクセスを拒否する数行のコードを.htaccessに追記します。403を返すだけになるので帯域の節約になります。

大前提ですが、自己責任でお願いします。

Bytespiderというbotのアクセスが多発していた

Xserverのアクセス解析を見ていたら、Bytespiderというbotがえげつなくアクセスしてきていて邪魔に思えたので、.htaccessを編集してBytespiderからのアクセスには403を返すようにしました。

BytespiderというbotのUser-Agentを確認すると、

Mozilla/5.0 ..省略.. (compatible; Bytespider; spider-feedback@bytedance.com)

のようになっていて、最後に記載されているbytedance.comを調べると、どうやらTikTokの親会社のようでした。

かねてから除外したかったahrefsというSEOツール系のbotと一緒にアクセスを拒否します。

結果、このように、Bytespiderに対してことごとく403を返すようになります。

www.gsx-r400.com ..省略.. 403 "Mozilla/5.0 ..省略.. Bytespider; spider-feedback@bytedance.com

.htaccessに追記するコード

このコードを.htaccessの末尾に追記します。追記する時は、追記前の正常に動作している状態の.htaccessをどこかに必ずコピペしておいて、何か異常があればいつでも戻せるようにしておいてください。

# リクエストをブロックする条件を設定
SetEnvIfNoCase User-Agent "Bytespider" block
SetEnvIfNoCase User-Agent "bytedance" block
SetEnvIfNoCase User-Agent "ahrefs" block

<RequireAll>
    Require all granted
    Require not env block
</RequireAll>

Xserverのサーバーパネルの「.htaccess編集」→「設定対象ドメイン」を選択→「.htaccess編集」タブを開くと.htaccessが編集できます。すでにWordPressやXserverが書き込んだ設定が書き込まれているでしょう。

その末尾に上記コードをコピペします。

このコードを簡単に解説すると、

.htaccessでは#で始まる行はコメントです。処理されません。

SetEnvIfNoCaseのSetEnvというのは、環境変数を設定する命令で、User-AgentにBytespiderが含まれていたら、そのアクセスに対してblockという環境変数をセットするという意味になります。

SetEnvIfNoCaseは、SetEnvの大文字・小文字を区別しない(NoCase)命令。BytespiderでもbyteSpiderでもbytespiderでも大文字・小文字を区別せずに含まれているかを判定します。

Require all grantedで一旦すべてのアクセスを許可しておいて、Require not env blockで環境変数(env)がblockなアクセスを拒否しています。

ご自分で他のものを追加する場合に気をつけてほしいこと

ご自分で他のものを追加する場合に気をつけてほしいのは、SetEnvは"Bytespider"のようにダブルクオートで囲んで与えられた文字を正規表現で分析するので、正規表現でエスケープが必要な文字はバックスラッシュ( )でエスケープしないと、すべてのアクセスが500エラーになるので注意してください。

例えば、"Safari/537.36"を含んでいるのを遮断する場合は、ピリオドが正規表現のエスケープ対象文字なので、

SetEnvIfNoCase User-Agent "Safari/537.36" block

のように、ピリオドの前にバックスラッシュをつけます。

ちなみにこれは、私のブラウザからアクセスした時のUser-Agentをブラウザの開発ツールで調べて、その中にあった"Safari/537.36"を利用して、実際に効くのかを試した時のものです。

正規表現のエスケープが必要な文字の一覧は、外部サイトですが、このページが参考になります。

正規表現:エスケープが必要な文字一覧 | WWWクリエイターズ

よかったらシェアしてね!