blosxomでのスパム対策は自分で考えたものも含め、いくつか紹介してきたわけですが、どれもwritebackプラグインに対策コードを追加という形を取っているので、blosxom本体が呼ばれまくるというのは避けられないものです。現に、ここ4日ほどランダムプロクシ経由で爆撃(1000近い)受け、ちょっと精神的によろしくない感じでした(全部撃墜できたので、さほど気にすることはないとは思うのですが)。そこで思い出したのが、mod_rewriteによるスパム対策です。
スパム対策をいろいろ探し回っていた時に見つけた、kasia in a nutshellのComment spam and mod_rewriteというエントリが元ネタです。これはMovable Typeでの話ですが、仕組み自体はさほど変わらない(特定のURLにPOSTするだけ)ので、自分の環境に合わせて書き直してみたり。
RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} \.writeback$ RewriteCond %{HTTP_REFERER} !^http://hail2u.net/blog/.*\.html$ RewriteRule (.*) - [F,L]
こんな感じ(もちろんURLの部分は環境に合わせて書き換える必要があります)でいけると思います(未確認)。やっていることは、
ということになります。で、全てにマッチしたら403を返してやると。
結局はリファラのチェックに過ぎないので、リファラを詐称されたら防げないですが、経験上はそこまで頑張ったスパムはあまり無いと思うので、結構コレで潰せそうです。この場合はblosxom本体は呼ばれないので、CGIによる負荷が下がることになります(mod_rewriteによる負荷は当然上がりますが)。