前に設定した、2byteコードが入ってないと受けつけないよ、
というスパム対策はそれなりに機能している。
ただ、日本語のトラックバックスパムも増えてきていて、
たまに頭にくるものもあったりする。
とりあえず言及リンクのない Trackback は受けつけなくても
良いかな、ということでその設定もしてみた。
使用しているトラックバックプログラムの元は、
miyagawaさんが日本語化 + メール送信対応したものを、
たつをさんが、くっつき化したもの。
参考)
技術文書:くっつきトラックバック
http://nais.to/~yto/doc/tech/kuttuki-trackback.html
これに、
- 2byte文字チェック(正確には8bitチェック)
- 言及リンクチェック
を追加してみました。
いちおう以下に置いときます。
http://www.pochi.cc/~sasaki/src/trackback
参考にした URL は以下。
トラックバック SPAM 対策 --> [2005-04-21-10]
言及リンクのない Trackback をはじくプラグイン Junk Filter 版
--> [2005-10-03-9]
具体的な追加コードは以下。
それほどコードを書かずに対応できちゃうのは Perl の良い所。
...
+ my $BlogUrl = 'http://**********';
...
...
my $mode = param('__mode');
unless ($mode) {
...
respond_exit("No URL (url)") unless $i->{url};
+ # anti spam 1
+ my $txt = $i->{excerpt};
+ if(($txt ne "") && ($txt !~ m/[\x80-\xff]/)){die('error')};
+ # anti spam 2
+ use LWP::UserAgent;
+ my $ua = LWP::UserAgent->new;
+ my $res = $ua->request(HTTP::Request->new(GET => $i->{url}));
+ my $ok = $res->is_success && do {
+ $res->content =~ m/\Q$BlogUrl\E/;
+ };
+ if(!$ok){die('error')};
+ #
my $data = load_data($tb_id);
くぐり抜けるトラックバックスパムが出てくるのは時間の
問題だろうけど、しばらくはこれで様子を見るつもり。