鬱陶しいトラックバックスパムをフィルタリングする為の Blogn 用スクリプトです。
Blogn のトラックバック受信スクリプト(tb.php)に組み込む事により、受信したトラックバックを様々な条件から複合的にスパムか否かを判断します。
スパムと判定されたトラックバックは受信を拒否します。
はじかれたトラックバックのログを記録する事も出来ます。
Blogn v1.9.2 で動作確認しています(v1.9.3 でも動くと思います)。
「Blogn 用トラックバックスパム対策スクリプト」(antitbsp.zip, 4kb)
「tb.php」60行目あたりに下記の通りに赤文字部分を追加する
$t_date = gmdate("Ymd", time()+TIMEZONE);
$t_time = gmdate("Hi", time()+TIMEZONE);
include("antitbsp.php");
$trk = $no."<>".$blog_name."<>".$title."<>".$url."<>".$excerpt."<>".$t_date."<>".$t_time."<>".$ip_addr."<>".$user_agant."\r\n";
$trkname = "trk".substr($t_date,0,6).".dat";
if ($err = FileSearch($trkname)) {
※ 保留機能を導入されている場合は、「$status = 1;」の上に赤文字部分を追加してください。
トラックバックを受信して Blogn で記録する直前に、この「トラックバックスパム対策スクリプト」がトラックバックの内容をスキャンします。
もしトラックバックスパムと判定された場合、トラックバックをはじき、Blogn のログに記録せずに破棄します。
スパムでないと判定されたものについては、Blogn のスクリプトに渡します。
※ スパマーに手の内を明かしてしまうと対策される恐れがあるので、このページでは「スパム判定条件」については語りません。
詳しくはスクリプト同梱の「readme.txt」を参照してください。
いくつかある条件それぞれに「0〜10」のペナルティが付与されています。
例えば、「条件A=10」「条件B=8」「条件C=5」「条件D=2」「条件E=1」と設定したとします。
受信したトラックバックに対して「条件A〜E」までチェックします。
もし条件に合致していると指定されたペナルティが加算されます。
「トラックバック1」は「条件A」でひっかかったとします。すると与えられるペナルティは「10+0+0+0+0」で「10」となります。
スパム判定基準値(10)に達しているので、「トラックバック1」はスパムと判定され受信を拒否します。
「トラックバック2」は「条件B」と「条件C」でひっかかったとします。与えられるペナルティは「0+8+5+0+0」で「13」となります。
これも基準値を上回ったのでスパムと判定されます。
「トラックバック3」は「条件C」「条件D」「条件E」と3つにひっかかったとします。与えられるペナルティは「0+0+5+2+1」で「8」になります。基準値を下回っているのでスパムとは判定されず、トラックバックの受信を許可します。
2006/04/20 ver1.01 バグ修正
2006/04/19 ver1.00 公開