Prev / Next / /home/pochi/ChangeLog

くっつきトラックバック "tb-standalone" のトラックバックスパム対策[computer]

2005-11-23

前に設定した、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);


くぐり抜けるトラックバックスパムが出てくるのは時間の
問題だろうけど、しばらくはこれで様子を見るつもり。

Referrer (Inside): [2007-05-25-7] [2006-01-25-2]

permlink