11 August '2005 - 20:40 | Pivot Referrer Spam うざ
いまさらだけれど、けっこう Referrer Spam が来てることに、さっき気がついた。 面白いなあ。どう対処するのがいいのか知らないけれど、Pivot の機能で、Referrer の一覧ページがあって、そこでホスト単位でブロックできるような感じなので、それがどういう働きをするのか知らないけれど、試しにいくつかブロックして様子をみてみた。
が、しかし、べつに何もブロックされている様子がない。相変わらず「最近の参照元」にはブロックした Referrer が追加されている。じゃ、おれは何をブロックしたんだ。
よく分からないので、ちらっとコードを見てみたら、どうやらブロックされたホストはコメントを送信することができなくなるらしい。だから、それ以 外のことはできるらしい。なーんだ。Referrer Spam には何の関係もないのね。ブロックされたホストは Referrer ログに保存しないとか、そもそも閲覧することもできないようにすればいいのに。
というわけで、さくっとハック。と思いきや、次のバージョンの α4 も非公式だけれどでてるし、次のバージョンもそのうちでるだろうし、そうするとまたパッチをあれしないといけないだろうし、なんか、面倒くさいなあ。うー ん、どうせ、相手はロクデナシというかただのプログラムだから、簡単に apache の方で 403 を返してやることにするか。
$ cat apply.blocked_ip.sh
#!/bin/sh
TMP=.htaccess.tmp
BLOCKIPS=pivot/db/blocked_ips.txt.php
DLMT='### appended by '
awk "/$DLMT/ {exit 0} {print}" .htaccess > $TMP
echo $DLMT $0 >> $TMP
sort -n $BLOCKIPS | awk '{print "deny from " $1}' >> $TMP
cp -p .htaccess .htaccess.`date +%Y%m%d`
mv $TMP .htaccess
ブロックしたあとにこのスクリプトを動かせば、ブロックされてるホストがアクセスしてきたら 403 Forbidden が返る。ふん。