hamada
bungu****@leo*****
2004年 4月 27日 (火) 09:52:12 JST
こんにちわ。 On Mon, 26 Apr 2004 10:21:41 +0900 TAMURA Toshihiko <tamur****@bitsc*****> wrote: > osCommerce において、BBSや検索サイトの検索結果から`osCsid=...'と > いったセッションID付きURLでサイトを訪れる場合がある。 > 現在、この現象を確認している検索エンジンには MSN がある。 つまり、MSNで使ってるクローラーはosCommerceのリンクを追うんですね〜。 現在のMSNはたしかロボットにInktomiを使ってたハズなんで、 > Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) ↑このロボットが拾ったリンクだってことなんだと思うんですけど、当方のログ からこのエージェントのログを検索してみましたところ、 > /catalog/product_info.php/cPath/28_55/products_id/356 全部↑こんな感じで、セッションIDの付いたアクセスは1つもありませんでした。 これはたぶん、当方のosCommerceはクローラーに対してmklist/mklist2で作った サイトマップを用意してる→クローラーがこちらからリンクを追ってきてるせい なんだろうと思います。 未だβ版扱いであるMSNbotも結構頻繁にクロールしてきてるようですが、やはり 同様に「セッションIDの付いてない」クリーンなURLでリクエストを送ってきて るみたいです。Googlebot他も同様。 当方の知ってる範囲では、Naverのロボット > NaverBot-1.0 (NHN Corp. / +82-2-3011-1954 / nhnbo****@naver*****) がセッションを追って来ます。 というか、NaverBotはセッションを識別出来ないようで、同一のファイルに対し てセッションIDだけ変えて短時間にしつこく繰り返しリクエストを送り続けて来 る→サーバに無駄な大負荷をかけてくる困ったちゃんで…(^_^;) > 対策としては、session.referer_check の設定を利用するのが > 簡単で効果があります。 ということで、当方のサイトでは↑こちらの対策くらいでいいだろうと思って作 業を始めたのですが… 一体「session.referer_check」にどんな文字列を設定すればいいんでしょう?? > session.referer_check には、HTTP Referer において確認を行う文字列を指定 > します。Refererがクライアントにより送信されており、かつ、指定した文字列 > が見付からない場合、埋め込まれたセッションIDは無効となります。デフォル > トは空の文字列です。 これが「指定した文字列がある場合」だったら検索エンジンのURLの一部とか設 定すればいいのかなぁとか思うんですけど、「見つからない場合」ということな ので、当方にはどんな文字列を設定すればいいのか見当がつきません。 > http://www.oscommerce.com/community/contributions,1089 > ロボットのアクセス時にセッションIDを付加しない。 やっぱりこっちを考えるヒトも居るんですねぇ。このアイディアは当方も最初期 に検討したんですが、プログラミング技術が伴わなかったことに加え 「人間のときとクローラーのときで違う処理をする→検索エンジンスパム(クロー キング)と見なされそうで、ちょっと怖い」 という部分がありまして、見送ったと言う経緯があったりします。 実際には、アマゾン等で 「クローラーが来た場合にクリーンなURLへリダイレクトする」 ことが当たり前に行なわれてますんで、「余計なものを除いたクリーンなURLに 誘導すること」はクローキングではなかったみたいですけど。 それにしても、このspiderkillerは非常に素朴なテクニックで必要事項を実現し てますね。当方程度のスキルでも、このソースなら苦労せずに読むことができま した。確かにこれは重いかも(笑) はまだ