ちょいとHP版の方で使っているアクセスカウンタ周りのスクリプトを根本的に見直そうかと思い立ち、作業を始めてしまいました。
ごそごそ
[PIC]
なにやらいかがわしい感じです。
ただのアクセスカウンタだけなら、それほど苦労はしなかったのですが、私の場合、同じスクリプトの中で、このブログのモジュールでも試用しているアクセスIDとか、履歴、ページ(コンテンツ)ごとの表示回数などの記録などの処理をさせていることで、最初は気軽に始めた作業も、どんどん大変なことになってきました。
まぁ、単純に言うと「BOTもCrawlerもみんな通してしまえっ」ということです。
もちろん、いつでもアク禁にできるようには作るつもりなんですけどね。
んで、その動機というのが、
んー、世の中猫も杓子もブログな時代、飛び交うCrawlerもRSSリーダーもみんなブログ狙いなわけだから当たり前といえば当たり前なんですけどね。
私としては、少々悔しいのですよ。
しかも、
「いくつかヒットするHP版の方に、全然トップページあるいは入り口ページが無い」
トップや入り口はフリーで通してるはずなんですけどねぇ。まあ、それならそれで、以前から考えていた仕様を実現させようと思った次第です。
具体的には、
各コンテンツ内への入場をフリーにする代わりに、必要以上にサーバーへの負担とはならないよう、ロボットさんたちには画像あるいは書庫ファイル等、比較的サイズの大きいファイルへのアクセスはさせない。
つまり、転送量について必要最低限に抑える、というものです。もちろん、フォームへのポストなども控えてもらいます。
所詮HTML部分はテキストデータです。相当文字数の大きなページであっても、ちょこっとしたサイズの画像1つ分の転送量にも及ばないだろう、という発想です。
そのための手段としては、明らかにBOTさんだと判明しているアクセス元に対しては、出力するHTMLの中から画像関係のタグやリンクなどをスクリプトによって削除あるいは代替文字に置き換えてしまうことを考えています。普通の情報収集や、検索エンジンさん、またRSSリーダー等であれば、別に画像ファイルは必要ないでしょう?
しかし、そういった極端な手法をするためには、可能なかぎりBOTか否かの判定を厳密に行う必要があるわけで、そのための仕様を模索しながら、同時に動作チェックを行っているわけですね。
その判定の参考にしているのが、
ユーザーエージェント内の文字列("Bot" や "Search" などがあるようならまだ良心的。安心して通しましょう)
クライアントがクッキーを保存するかどうか(保存しない場合は間違いなくロボットさんです/DoCoMo携帯は除く)
海外からのアクセス(ロボットさん以外でそんなところからいらっしゃるお客さんに心当たりはありません)
PROXYなアクセス(生理的に、私は串さんは嫌いです)
挙動不審なアクセス(hidden属性とかで見えないはずのリンクをたどってくるとか~罠を張るわけね。ぐふふふ……実はこれが一番やりたかったのか、私)
だいたいこんなところです。今回、できるだけ自力でやれるところまでやってみよう、と考えているので、不正IPデータベースとかおそらく探せば見つかるのでしょうが、そういったものには手を広げていません。(でも、そのうち真剣に探そうとは思います)
この中で、「挙動不審IP」はこれからですが、それ以外については格好はついてきた感じです。今のところバグが怖いので、既存のカウンタスクリプトと閉口して、別ログファイルとか使って動作チェック中です。
もっとも、些細な(つまり大バカな)ミスで既存のカウンタファイルを上書きしてしまうという醜態を晒してしまいましたが。(あはははっ)
んで、ぼちぼちと履歴ファイルとかが溜まってくるのに併せて、それらの管理画面関係のスクリプトに手をつけ始めたところです。
管理? なにを管理するんだ? と考えながら取り掛かると、いろいろと欲が出てきてしまうようで、各アクセスの対象ページごとのランキング付けとか、よく見かける時間帯別アクセスのグラフ化だとか、果ては判別不明だったIPを手作業(Web上)で修正したり、アクセス元の分かっているIDにエイリアス名をつけて表示してみようか、だとか、変なことばかりが浮かんできます。(そうやって自分の首を絞めるわけですね)
そこで頓挫。(はぁはぁ)
勢いだけですぐに出来上がる代物でもなかったです。少しペースダウンかな。(おいおい、あの不気味な表示を放置しとくのか?)
あ、ついでに、このスクリプト、多少の手直しでBlognのモジュールに仕立て直すことを想定しています。完成したら、長年お世話になったカルカンカウンターさんと入れ替えってなことになるかもです。
≪ 続きを隠す
|2009,01,11, Sunday 06:44 PM | comments (0) | trackback (0) |