Skin Select:

日単位のアーカイブ: 3 月 21st, 2008

Twitter Updates for 2008-03-21

水曜日に完了出来なかったジョブ、いまだに終わらず…。[tM] #
お気に入りの弁当、最後の一つだった。セーフ、セーフ。[tM] #
@hiromasa 昨日、「帰宅したらリンク貼り直す」と言いながら、完全に失念しておりました! すみませんすみません![tM] #
実は昨日ちょっとした買い物をしてしまい、そっちのセッティングに追われていたのでした(ダメじゃん)。[tM] #
退社。なんか気分悪い。[tM] #
人格というのはちょっとした言動にも如実に現れるものなんだね。[tM] #
やっぱり地下鉄の車内で爆睡…。[tM] #
ただいま。いつものことだがやっぱりむしゃくしゃする…。 #
昨日やろうとしていてすっかり失念していた「hiromasa.zone」へのリンク張り直し、ようやく完了しました。 #
iTunesのCD取り込みのバグ、まだ残っていやがった。CD全部取り込み直しかな(とほほ)。 #
iTunesのバグ、低速ドライヴだと起きないのだそうですね。事実私のところでも、遅い方のドライヴでインポートしてみたら後ろの5秒が切れませんでした。http://tinyurl.com/2947u8@507.JUmicxAZerf.96@.f041173 #
あ~、2月21日以降にiTunesに取り込んだCD全部取り直しだよ~(ToT) #
@hiromasa おかえりやす。 #
@pureminami どんなことしていたかよく存じませんけどお疲れ様でした。おやすみなみ。 #
@hiromasa 本当は昨日リンク張り替えるはずだったのに申し訳ありません。 #
iTunes、いつになったらバグフィックス版が出るんじゃ~!? #
ハイヴィジョン・テレヴィはゲームのためにあると考えているボクちゃん。 #
CDインポート、まだ終わっていないが後日に回そう。 #
とりあえず私も寝ます。行方不明のCDは「Summer」をのぞき見つかりました。てゆうかSummerどこへ行った!? #
というわけでおやすみなみ #

Powered by Twitter Tools.

I hate spam and bot!

 実はここしばらく、海外からのbotによる当ブログへのおびただしい数のアクセスに悩まされておりました。
 アクセスもとのIPアドレスはころころ変わっているのですが、通知されてくる「HTTP_USER_AGENT」に特徴がありますので、それを逆手にとってその特徴を有するユーザ・エージェントからのアクセスを無条件で却下すればいいじゃんと思いつつ、何故かなかなか実現できておりませんでした。
 IPアドレスがころころ変わるため、「.htaccess」ファイルに「deny from 123.456.78.90」のような感じでちまちまIPアドレスを指定していてもきりがありません。
 というわけで、Apacheのモジュールではじこうと思いました。
 しかし、どういう訳か私がはじめに採用しようとしたのが「mod_security.c」による制御です。
 ネットでいろいろ調べて試してみたのですが、どうもまともに動いてないようです。実際に、設定したと思い「.htaccess」ファイルをサーヴァにアップしたあとも、小憎たらしいbotからのアクセスが思いっきり確認されております。
 ちなみに私が「.htaccess」ファイルに記述したのはだいたいこんな感じ。ただし、そっくりそのままではありません。
PLAIN TEXT
CODE:

<ifmodule mod_security.c>

SecFilterEngine On

SecFilterScanPOST On

SecFilterSelective HTTP_REFERER "http:/[a-zA-Z_-]{30}" "deny,nolog,status:403"

SecFilterSelective HTTP_USER_AGENT ".*bot" "deny,nolog,status:403"

</ifmodule>

 正規表現でいけるかと思っていたのですが、ダメなのでしょうか?
 ネットで調べると別の記述もありました。こんな感じだったかな?
PLAIN TEXT
CODE:

<ifmodule mod_security.c>

SecFilterEngine On

SecFilterScanPOST On

SecFilterDefaultAction "deny,log,status:403"

SecFilter DynamicOnly

SecFilterSelective HTTP_USER_AGENT ".*bot"

</ifmodule>

 条件に合致したときのアクションをあらかじめ指定できるのですが、それでもダメでしたね。
 数時間これで悩んでいたのですが、結局この方法を使うのは断念しました。
 とりあえずは仮に、冒頭できりがないと言いながらも、例の小憎たらしいbotのアクセス元としてマークされたIPアドレスを片っ端からdenyする原始的な方法を執ったのですが、その後別のもっと簡単な方法があることが発覚しました。
 「mod_rewrite.c」を使う方法です。
 これを使えば、先ほどの「mod_security.c」よりもさらに簡単な記述でことが足りるではありませんか!
 こんな感じ。
PLAIN TEXT
CODE:

<ifmodule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

RewriteCond %{HTTP_REFERER} "http:/[a-zA-Z_-]{30}" [OR]

RewriteCond %{HTTP_USER_AGENT} "bot"

RewriteRule ^.*$ - [F]

</ifmodule>

 う~ん悔しいなぁ。せめて昨日外出するよりも前に気づいていれば!
 ちなみにこの記述の場合、部分一致で正規表現を使えます。
 試しに私が愛用するOperaブラウザで動作の確認をしてみたのですが、たとえば

RewriteCond %{HTTP_USER_AGENT} "Opera"

RewriteCond %{HTTP_USER_AGENT} "pera"

また、

RewriteCond %{HTTP_USER_AGENT} ".*pera"

のときはOperaからのアクセスが却下されることを確認しております。
 もちろん、

RewriteCond %{HTTP_USER_AGENT} "Gpera"

などの場合にはちゃんとOperaからのアクセスが通ることも確認済みです。
 ちなみに、「mod_security.c」関係をいじっていたときは、何故かOperaでの動作確認が出来たり出来なかったりと、不可解な動きになっていました。
 私がこの機能をよく理解していないだけなのかもしれませんが、いずれにせよ不確実な「mod_security.c」よりも、より確実な「mod_rewrite.c」を採用することにしました。
 本当に小憎たらしいbotのアクセスを完全に遮断できているかどうかについては、しばらく様子を見て判断したいと思います。

77330 pages viewed, 1538 today
28491 visits, 178 today
FireStats icon Powered by FireStats
このページの先頭へ