なんちゃってトラックバック。
どこで検索して来るんだか、外国からのトラックバックのスパムは突然、それも大量に来ます。
取り敢えず、日本語の読めない外国人からのトラックバックを誤ったトラバで送らせようとするトラップです。
相手のIPアドレスも収集できます。 日本人には無効。(まぁ当たり前ですが)
http://cachu.xrea.jp/blog/archives/2004/12/312106.html
ここを参考にさせて頂きました。m(_ _)m
以下は改造にあたりますので自己責任で行ってください。m(_ _)m
★data.cgiという空のファイルをblog.cgiと同じディレクトリに転送します。(パーミッションは666で)
★Trackback.cgiを作りblog.cgiと同じディレクトリに転送します。
=====Trackback.cgiここから
#!/usr/bin/perl
use CGI qw/:standard/;
use Net::Trackback::Ping;
use Net::Trackback::Server;
use Jcode;
$tmp = $ENV{HTTP_REFERER};
$ip = $ENV{REMOTE_ADDR};
$jj = $ENV{QUERY_STRING};
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900; $month = $mon + 1;
$CGI = new CGI;
$ping = new Net::Trackback::Ping;
eval { $ping->parse( $CGI ) };
$BlogName = $CGI->param( 'blog_name' );
$Message = $CGI->param( 'excerpt' );
$Title = $CGI->param( 'title' );
$URL = $CGI->param( 'url' );
$line = "$BlogName $Title ($URL)";
Jcode::convert( \$line, 'sjis' );
if ($BlogName ne ""){
open (f, ">>data.cgi");
print f "★$jj -- $ip : $tmp\n";
print f "date:$year/$month/$mday--$hour:$min:$sec == ";
print f "$line\n";
close (f);
}
#全て成功とウソの応答
Net::Trackback::Server->send_success( 0 );
=====Trackback.cgiここまで
Bloqの変更箇所(行数はズレてる可能性があります Bloqのver.は2.51a)
★blog.cgiの
1703行辺り
$blog .= "<a name=\"trackback\"></a><h3>$pinトラックバック</h3>\n";
$blog .= "<font color=$cmfont>この記事へのトラックバックURL:<br>\n";
$blog .= "$reload/$num</font><p>\n";
の3行を
$toraba = trackback.cgi;
$blog .= "<a name=\"trackback\"></a><h3>$pin *Trackback Ping URL</h3>\n";
$blog .= "<font color=$cmfont>外国のスパマーへのトラップです<br>\n";
$blog .= "$toraba?$num</font><p>\n";
$blog .= "<h3>$pinトラックバック</h3>\n";
$blog .= "<font color=$cmfont>この記事へのトラックバックURL(こちらが本物):<br>\n";
$blog .= "$reload/$num</font><p>\n";
と替えます。
これによって
data.cgi
には
(BloqのエントリNo.) -- (IPアドレス) : (どっから来たかのURL)
(年月日) -- (時分秒) == (ブログ名 エントリ名 URL)
というように記録されます。
Trackback.cgiの直接呼び出しは記録しません。