August 11, 2004

リファラつきの Trackback に確認画面

DDoS 的な JavaScript のアタックをはじきつつ、blosxom の Ping flavour とかから送信される(正当な?)リファラつき Trackback を確認画面を1枚はさんで受け付けられるようにしてみました。(なんか深追いっぽいですがこれが Blog ツール側のデフォルトになればよいのかも)

mod_rewrite のほうでは以下のように設定。Mozilla はじきはやめて、blog.bulknews.net 以外の Referer をはじくようにして、飛ばし先を Forbidden でなくて /mt/tb-pass.cgi としました。

# for Trackabck SPAM
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} mt-tb\.cgi
RewriteCond %{HTTP_REFERER} .+
RewriteCond %{HTTP_REFERER} !http://blog\.bulknews\.net.*
RewriteRule (.*) /path/to/mt/tb-pass.cgi [L]

tb-pass.cgi では、パラメータを受け取って、確認画面にて再度フォームを表示。blog.bulknews.net のリファラは受け取れるようになっているので、ここで再度 submit すれば Trackback Ping が送信できます。mod_rewrite ではじいたもともとの Ping URI は環境変数 SCRIPT_URI で取得。なんだか無駄に長いですが。。

use strict;
use CGI;
use Jcode;

my $q = CGI->new;
my @params = qw(title blog_name excerpt url charset);

my $ping_url = $ENV{SCRIPT_URI};
if ($ping_url =~ /tb-pass\.cgi/) {
    # Direct Access
    print $q->header, "Forbidden";
    exit;
}

my $charset = $q->param('charset');
$q->param(charset => "utf-8");

for my $p (@params) {
    my $v = get_value($q, $p, $charset) or next;
    $q->param($p => $v); # set
}

print $q->header('text/html; charset=utf-8'),
    "<html><head><title>Trackback Confirmation</title></head>",
    "<body>Really send this Ping? (Sorry, this confirmation is for anti-spam)\n",
    $q->start_form(-action => $ping_url, -method => "POST");

for my $p (@params) {
    defined($q->param($p)) or next;
    print $q->hidden(-name => $p);
}

print $q->submit(-value => "OK"), $q->end_form;

sub get_value {
    my($q, $p, $charset) = @_;
    my $v = $q->param($p);
    defined($v) or return;

    my $code;
    if ($charset) {
        my %code = (
            "euc-jp" => "euc",
            "shift_jis" => "sjis",
            "utf-8" => "utf8",
        );
        $code = $code{lc($charset)};
    } else {
        $code = Jcode::getcode($v);
    }

    return Jcode->new($v, $code)->utf8;
}
Posted by miyagawa at August 11, 2004 08:04 PM | Permalink | Comments (3) | TrackBack(1)
Comments

掲示板に貼られているボタンを押してしまうような人は、もう一回押してしまうかも。。。

Posted by: tokuhirom on August 13, 2004 06:00 AM

Lieber grumble!!! hoffe dir gehts gut da in der fremden weite... wenn man dich schon nicht persnlich besuchen kann...

Posted by: Stowers on May 19, 2007 10:53 AM

Wann machma denn die nchste party??? lebe lang und erfolgreich!!! :)

Posted by: Elisabeth on July 2, 2007 06:40 AM
Trackbacks
TrackBack URL for this entry: http://blog.bulknews.net/mt3/mt-tb.cgi/1182
comment spam, trackback spam 対策 (Movable Type)
Excerpt: Movable Type v3.14 とは、大量のスパムによるサーバ負荷を軽減するためのマイナーバージョンアップです。バージョンアップしてもコメントスパムが減るのではありません。しかも、世界の中で、数カ国がスパムを違法としても何ら解決しません。 &#916;&#160;スパム送信元 I...
Weblog: tips::RSS, Atom, S/MIME mail
Tracked: December 23, 2004 09:31 PM
Post a comment