ホーム > 今日の基礎体力 > 行儀の悪いUSER_AGENT対策

行儀の悪いUSER_AGENT対策

[`evernote` not found]
[`grow` not found]
[`livedoor` not found]
[`yahoo` not found]
Delicious にシェア
このエントリーをはてなブックマークに追加

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)もこうならないよう心底願います。

コメント: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(); ?>

コメントフォーム
入力した情報を記憶する
accessLogging

トラックバック:0

この記事のトラックバック URL
http://beatnik.jp/blog/archives/20/trackback
トラックバックの送信元リスト
行儀の悪いUSER_AGENT対策 - PHPで翻訳三昧 より

ホーム > 今日の基礎体力 > 行儀の悪いUSER_AGENT対策

Ad
Apache
MySQL
PHP
お気に入り
ん。。。。。。広告
アーカイブ
Ad

ページの上部に戻る