GIGAZIN「ランダムな英字トラックバックスパムをブロックする方法」と、NOBODY:PLACE「トラックバックSPAM対策。」等を参考に私もこの方法で弾いてみようかと思います。
ログを見てみると通常トラックバックで表示されるPOSTに含まれているUserAgentではないことが解ります。そんなわけで間違いなくスパムで有ると思われるUserAgentを指定し弾いてみます。
しかし検索して解りましたが、e2.bd.5546.static.theplanet.comっていうのが物凄く多いです。調べてみるとあちらこちらで被害を出している様子。cgiにだけpost攻撃しているのかと思いきや、見つけたアドレス全てにpost攻撃してます。スタイルシートにまでpost攻撃しているので下手な鉄砲数打ちゃ当たる的な攻撃方法ですね・・・・。counter用cgi、カテゴリー用アドレスにまで攻撃しかけてますよ。
上記のリンクを参考に、こんな感じにしてみました。
SereneBachの場合でトラックバック用cgiを名前を変更して設置している場合です。
その名前がsb-tb.cgiにした場合こんなふうに.htaccessに記述しました。
<Files sb-tb.cgi>
<limit POST>SetEnvIf User-Agent "^Mozilla/4\.0" trackers
SetEnvIf User-Agent "^Mozilla/5\.0" trackers
SetEnvIf User-Agent "^TrackBack/1\.02" trackers
SetEnvIf User-Agent "^TrackBack/1\.6" trackers
SetEnvIf User-Agent "^NP_Trackback/2\.0\.3" trackers
SetEnvIf User-Agent "^tb_send/1\.0" trackers
SetEnvIf User-Agent "^Opera" trackers
SetEnvIf User-Agent "^$" trackersOrder Allow,Deny
allow from all
deny from env=trackers</limit>
</Files>
しかしUserAgent偽装しているのもある中ご丁寧にTrackBack/1.02やTrackBack/1.6と言う解りやすいUserAgent名を使っているのも結構あるのでそれも追加しておきます。あと、拒否するかどうか迷ったUserAgentがNP_Trackback/2.0.3というのです。このUserAgentはnucleusというblogツールのトラックバック用プラグインのようで、拒否するとnucleus関係が全部拒否になっちゃうのかな?と色々調べましたが、日本語版には「j」と言う文字がはいるそうですし、英語版はそもそもUserAgentがMozillaと偽装されているそうなので弾いてますね。そんなわけで日本語版からは普通にトラックバック通るそうですのでNP_Trackback/2.0.3も無条件で拒否設定にしました。
後はいちいちそのipやドメインで弾くか、
それでもダメなら国指定でjp以外のアクセスを弾いてみても良いですね。
さて、この対策でどれだけスパムが減るか・・・・
追記
IPやドメイン、国指定で弾かなくても上記の方法でトラックバックスパムは現在ほとんど来ません。来ても弾かれてエラーページを表示させているようです。試しに404や403、405頁をつくってそこのログを見たら見事にスパム送信しているIPやドメインがずらっと飛ばされていました。
これでダメならまた他の対策を考えます、取りあえずはこれでいけそう。
ただ、この方法だと穴があるな・・・メインのcgiに攻撃されたら同じ事だからそっちも保護しないといけないのですが、そうするとまた・・・うーん
ならipやドメインで弾いてしまうべきではありますね。
コメント
[…] あるいはトラックバックスパムによく使われるUserAgentのものを弾く(参照: UserAgentでTBスパムを弾く – Planting Field Web Log) (2)トラックバックやコメントを受付けるファイルではなくて、/t/とか […]