サービス名から探す : Bizメール&ウェブ ビジネス r3 (ライト/ベーシック)に関するよくあるご質問
クローラーのアクセスを拒否したい
ここでは、クローラー(Scrapy など)によるウェブサイトへの不要なアクセスを .htaccess を用いて制限する方法を参考情報としてご案内します。
クローラーとは
クローラー(crawler)とは、主にインターネット上の情報を自動的に収集するプログラムのことで、主な役割としては以下があげられます。
- ウェブページの収集
クローラーは、ウェブサイトのリンクをたどりながら、ページの内容(HTMLなど)を取得します。 - 検索エンジンのインデックス作成
GoogleやBingなどの検索エンジンは、クローラーを使って世界中のウェブページを巡回し、検索結果に表示するためのデータベース(インデックス)を作成します。 - データ収集・分析
企業や研究者が、価格情報、ニュース、SNSの投稿などを収集・分析するためにもクローラーが使われます。
クローラーによる悪影響
- サーバーへの過剰な負荷
短時間に大量のアクセスが行われると対象のウェブサイトのサーバーに大きな負荷がかかり、サイトの動作が遅くなったりダウンすることがあります。 - セキュリティリスク
悪意のあるクローラーは、脆弱性のスキャンやスパム投稿などに使われることがあります。
クローラーのアクセスを制限する方法
クローラーのアクセスを制限する方法の一つとして、.htaccessにアクセスを拒否したいクローラーのユーザーエージェント(User-Agent)を指定する方法があります。
[1]ユーザーエージェント*1を確認する
*1 ユーザーエージェント(User-Agent)とは、ウェブサイトにアクセスする際に、アクセス元のソフトウェアやデバイスの情報を伝える文字列のことです。これは、ブラウザやクローラーなどがサーバーに送るHTTPリクエストの一部として含まれ、アクセスログで確認することができます。
例)Googlebot の場合
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
例)Scrapy の場合
"-" "Scrapy/2.11.2 (+https://scrapy.org)"
◆ アクセスログの確認方法は、以下リンク先のFAQをご参照ください。
[2][htdocs]ディレクトリにある.htaccessに記述して、最後尾に改行を入れる
ここでは例として、ユーザーエージェント「Scrapy/2.11.2」をブロックする場合の記述をご案内します。
記述を追加または記述に不備があることで、既にある記述の挙動に影響を及ぼす可能性があります。こちらをお試しいただく際は、事前にバックアップを取得する等ご準備のうえ、お客さまの自己責任においてご対応ください。
■ 記述例
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Scrapy/2¥.11¥.2 [NC]
RewriteRule .* - [F,L]
</IfModule>
■ 解説
<IfModule mod_rewrite.c>
Apacheにmod_rewriteモジュールが有効な場合のみ、以下の設定を適用します。
RewriteEngine On
URLの書き換え(リダイレクトなど)を有効にします。
RewriteCond %{HTTP_USER_AGENT} Scrapy/2¥.11¥.2 [NC]
アクセスしてきたユーザーエージェントが「Scrapy/2.11.2」と一致する場合にのみ、次のルールを適用します。
※ [NC] は「大文字・小文字を区別しない(No Case)」という意味です。
※「.」はエスケープが必要なため「¥.」としています
このRewriteCondを複数行記述(最後の条件は[NC]、それ以前の条件は[NC,OR])することで、複数のユーザーエージェントを指定できます。
例)ユーザーエージェントを3つ指定する場合
RewriteCond %{HTTP_USER_AGENT} ユーザーエージェント名1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ユーザーエージェント名2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ユーザーエージェント名3 [NC]
RewriteRule .* - [F,L]
すべてのリクエストに対して、403 Forbidden(アクセス拒否)を返します。
※ [F] は「拒否(Forbidden)」、[L] は「これが最後のルール(Last)」という意味です。
</IfModule>
mod_rewriteモジュールのチェックを終了します。
- 「Scrapy/2.11.2」部分を、お客さまが拒否したいユーザーエージェントに変更してください。
- .htaccessが配置されたフォルダと、そのフォルダ内にあるサブフォルダに効果があります。
- 最後尾に改行がない場合は、.htaccessに自動追記されるような操作が行われた際にエラーとなる可能性があります。必ず改行を入れてください。
- .htaccess内の記述は上から評価されるため、今回の記述より上に「IPアドレスの許可ルール+後続を無視する設定(RewriteRuleのL)」という記述がある場合は、今回の記述は無視されます。今回の記述を優先させる場合は最上段に記載する等、既存の記述とのバランスを調整しながらお試しください。
◆ .htaccessファイルの編集方法等は、以下リンク先のFAQをご参照ください。
注意事項
- Googlebotなどの検索エンジンをブロックすると、検索結果に表示されなくなる可能性があります。
- 設定ミスによりサイトが表示されなくなることがあります。文字の全角・半角に注意してください。
- 当FAQでご案内している以上の内容(クローラーに関する情報やお客さまごとの.htaccessの記述方法等)は、サポート対象外となります。
このよくあるご質問を見ている人はこんな質問も見ています
アンケートにご協力をお願いします
「疑問・問題は解決しましたか?」