Serene Bach の トラックバックスパム対策...日本以外のIPをはじく!
2005/12/13 Tue 16:17
まあ転ばぬ先の杖と言うことで。。。。
凪さんの作られたプラグインを入れさせて頂きました。凪さんありがとうございます〜〜(^^;)
http://calm.sakura.ne.jp/weblog/log/eid79.html
トラックバックスパムフィルター(簡易版) Ver.0.0.3
で、、これをちょこっと改造させて頂いて...とりあえず日本以外のIPから来たトラックバックははじくという設定にしてみました。
(超暫定版です...自分用なので...設定はないです(^^;)
やってみたい人は...試してみてください。
まず下記から日本のIPアドレスデータを取得してください。
http://www.j-pca.com/blog/japan.dat
で...sb.cgi と同じフォルダにコピーします。
で、、SimplifiedTBSpamFilter.pmの232行目あたりの eval { の直下に下記の記述を追加して...
# check : country_JAPAN
die($self->PING_ERROR_DENIED) if ( &_check_country_japan($tb{'host'}) == 0 );
それから270行目あたりに下記の関数を追加しておきます。
sub _check_country_japan {
my $ipadd = shift;
my ($mip,$tem,$line,$re);
if ($ipadd =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) {
$mip = ($1<<24) + ($2<<16) + ($3<<8) + $4;
} else {
return 0;
}
$re = 0;
open(CN, "./japan.dat");
eval{flock(CN, 1);};
while ($line = <CN>) {
if ($mip <= (split(/\t/,$line))[1]) {
if ($mip >= (split(/\t/,$line))[0]) {
$re = 1;
}
last;
}
}
close(CN);
return $re;
}
要は、日本で使われているIPアドレスと照合して、あればOK、無ければアウトという非常に単純なことをしてるだけですが、これで...日本以外から、トラックバックが来たら、有無を言わさず最初にチェックしてさよならするようになります。
なお、正規のプラグインのチェックをどれか有効にしてないとこれも有効になりません。それから動作状況の確認用にログを残しておいた方がいいかもしれません。
ついでに、未知のトラックバックスパマーに対抗する秘密のコードも追加してみました。
う〜ん、こうなると誰かトラックバック攻撃をかけてくれないと...テストができない(^^;)
メールのスパムチェッカ作ったときも、スパムメールが来るとすごく嬉しかったけど...今回も来てくれないと、ちゃんと動作するかどうかの確認が...(^-^) 早く来い来いトラックバックスパム(^0^)/~
ちなみにコードは¥が \ と表示されていますが、コードをコピーしてペーストするとちゃんと¥に戻ります(^0^)
凪さんの作られたプラグインを入れさせて頂きました。凪さんありがとうございます〜〜(^^;)
http://calm.sakura.ne.jp/weblog/log/eid79.html
トラックバックスパムフィルター(簡易版) Ver.0.0.3
で、、これをちょこっと改造させて頂いて...とりあえず日本以外のIPから来たトラックバックははじくという設定にしてみました。
(超暫定版です...自分用なので...設定はないです(^^;)
やってみたい人は...試してみてください。
まず下記から日本のIPアドレスデータを取得してください。
http://www.j-pca.com/blog/japan.dat
で...sb.cgi と同じフォルダにコピーします。
で、、SimplifiedTBSpamFilter.pmの232行目あたりの eval { の直下に下記の記述を追加して...
# check : country_JAPAN
die($self->PING_ERROR_DENIED) if ( &_check_country_japan($tb{'host'}) == 0 );
それから270行目あたりに下記の関数を追加しておきます。
sub _check_country_japan {
my $ipadd = shift;
my ($mip,$tem,$line,$re);
if ($ipadd =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) {
$mip = ($1<<24) + ($2<<16) + ($3<<8) + $4;
} else {
return 0;
}
$re = 0;
open(CN, "./japan.dat");
eval{flock(CN, 1);};
while ($line = <CN>) {
if ($mip <= (split(/\t/,$line))[1]) {
if ($mip >= (split(/\t/,$line))[0]) {
$re = 1;
}
last;
}
}
close(CN);
return $re;
}
要は、日本で使われているIPアドレスと照合して、あればOK、無ければアウトという非常に単純なことをしてるだけですが、これで...日本以外から、トラックバックが来たら、有無を言わさず最初にチェックしてさよならするようになります。
なお、正規のプラグインのチェックをどれか有効にしてないとこれも有効になりません。それから動作状況の確認用にログを残しておいた方がいいかもしれません。
ついでに、未知のトラックバックスパマーに対抗する秘密のコードも追加してみました。
う〜ん、こうなると誰かトラックバック攻撃をかけてくれないと...テストができない(^^;)
メールのスパムチェッカ作ったときも、スパムメールが来るとすごく嬉しかったけど...今回も来てくれないと、ちゃんと動作するかどうかの確認が...(^-^) 早く来い来いトラックバックスパム(^0^)/~
ちなみにコードは¥が \ と表示されていますが、コードをコピーしてペーストするとちゃんと¥に戻ります(^0^)
comments