- 2008-04-11 金 00:37:27
- 今日の基礎体力
Apacheのアクセスログを読んでみると新しい発見がある。
USER_AGENTが YodaoBot
となっているリクエストが目立つ。
検索してみると同じ事を感じてる人が結構いますね。
存在しないページをリクエストしてくる。
同じタイミングで2度同じリクエストをしてくる。
それも結構密なタイミングで。
行儀が悪いというより嫌がらせと言うほうがしっくりくる。
こんなクローラに収集されも良い事はひとつもないので
.htaccess
ではじいてしまおうと思う。
SetEnvIf User-Agent "YodaoBot" badAgent order allow,deny allow from all deny from env=badAgent
もしはじきたいクローラが増えたら
正規表現
のところを適切に変えてこの行を書き足す。
SetEnvIf User-Agent “正規表現
” badAgent
例えば libwww-perl をはじくならこんな具合に書き足す。
SetEnvIf User-Agent "YodaoBot" badAgent no_log SetEnvIf User-Agent "libwww-perl" badAgent order allow,deny allow from all deny from env=badAgent
libwww-perl って攻撃的な query_string をリクエストしてきます。
libwww ってのは Perlの HTTPクライアントライブラリで
これそのもが悪いわけじゃないけどひどい使われ方です。
PHP(PEAR::HTTP_Client)もこうならないよう心底願います。
- 新しい: PHPの基礎体力をPHP化
- 古い: DebugBarで快適IEデバッグ
コメント:3
- splwtr 2009-06-18 木
その.htaccessですが、
-行儀が悪くても403のステータスを返してると思います。
-どうせなら、404のステータスに変更して返したら、当該サイトからのアクセス頻度は落ちますよ。「404:アクセス不可」でなくて、特定サイトに「404:コンテンツ無し」と返答した方が
相手側も諦めてくれるようです。(ちょっと、時間かかりますけど)
404だったら、再度アクセスする仕様のクローラも存在するようです。
只今、中国のspiderで実験中です。また、何かありましたら、対策情報を頂きたいと思います。
- splwtr 2009-06-18 木
訂正
前>「404:アクセス不可」でなくて、特定サイトに「404:コンテンツ無し」と返答した方…
後>「403:アクセス不可」でなくて、特定サイトに「404:コンテンツ無し」と返答した方…
失礼しました。- ゆうじ 2009-06-19 金
> どうせなら、404のステータスに変更して返したら、当該サイトからのアクセス頻度は落ちますよ。
情報ありがとうございました。404で試してみます。
現在こうしたリクエストして欲しくないクライアントには
エラードキュメントは用意せず本文無しでトラフィックを減らしてます。
こちらもささやかなエコです。
< ?php header("HTTP/1.1 404 Not Found"); exit(); ?>
トラックバック:0
- この記事のトラックバック URL
- http://beatnik.jp/blog/archives/20/trackback
- トラックバックの送信元リスト
- 行儀の悪いUSER_AGENT対策 - PHPで翻訳三昧 より