さてこのプラグインのスパム判定基準ですが、
・メッセージに日本語が含まれていない場合
・メッセージにURLが複数含まれている場合
・メッセージ(又はURL欄)に含まれるURLがURLブラックリストデータベースに登録されている場合
・投稿したクライアントのホストがDNSブラックリストデータベースに登録されている場合
となっており、これらを総合的に判断したポイント制になっております。
■導入方法
【1】まずspam-bye2.zipをDLして解凍後、spam-bye2.phpをエディタで開いてください。
【2】41行目〜46行目をカスタマイズします。
=============================================================================================
41:$this->SB_POINT = 10;
42:$this->SB_ACTION = 0;
43:$this->SB_ERROR = ‘403 Forbidden’;
44:$this->SB_REDIRECT = ‘http://’;
45:$this->SB_DNSBL = array(’all.rbl.jp’,'bl.spamcop.net’);
46:$this->SB_URLBL = array(’url.rbl.jp’,'dyndns.rbl.jp’,'notop.rbl.jp’,'multi.surbl.org’,'multi.uribl.com’);
=============================================================================================
[41行目] $this->SB_POINT
スパムと判定するポイント数です。
[42行目] $this->SB_ACTION
スパムと判定した場合に実行するアクションを指定します。
0を指定した場合は43行目の$this->SB_ERRORに指定したメッセージを出力します。
1を指定した場合は44行目の$this->SB_REDIRECTに指定したURLへリダイレクトします。
[45行目] $this->SB_DNSBL
投稿したクライアントのホスト名を検査するDNSブラックリストデータベースのホスト名を指定します。(複数指定可能です)
[46行目] $this->SB_URLBL
メッセージ(又はURL欄)に含まれるURLを検査するURLブラックリストデータベースのホスト名を指定します。(複数指定可能です)
【3】52行目〜57行目をカスタマイズします。
=============================================================================================
52:$BAD_POINT += $this->CHARACTOR_CHECK($STR,8,$BAD_POINT);
53:$BAD_POINT += $this->URL_COUNT($STR,$BAD_POINT);
54://$BAD_POINT += $this->URL_COUNT($URL,$BAD_POINT);
55:$BAD_POINT += $this->CHECK_URLBL($URL,10,$BAD_POINT);
56:$BAD_POINT += $this->CHECK_URLBL($STR,10,$BAD_POINT);
57:$BAD_POINT += $this->CHECK_DNSBL(8,$BAD_POINT);
=============================================================================================
[52行目] $this->CHARACTOR_CHECK($STR,8,$BAD_POINT);
メッセージに日本語が含まれているかを検査します。
第二引数(上記数字の8)が日本語が含まれてない場合に加算するポイントです。
[53行目] $this->URL_COUNT($STR,$BAD_POINT);
メッセージに含まれるURL数がそのままポイントに加算されます。
[54行目] $this->URL_COUNT($URL,$BAD_POINT);
URL欄のURL数がそのままポイントに加算されます(デフォルトは無効)
[55行目] $this->CHECK_URLBL($URL,10,$BAD_POINT);
URL欄のURLがURLブラックリストデータベースに登録されているかを検査します。
第二引数(上記数字の10)がURLブラックリストデータベースに登録されてた場合に加算するポイントです。
[56行目] $this->CHECK_URLBL($STR,10,$BAD_POINT);
メッセージ中のURLがURLブラックリストデータベースに登録されているかを検査します。
第二引数(上記数字の10)がURLブラックリストデータベースに登録されてた場合に加算するポイントです。
[57行目] $this->CHECK_DNSBL(8,$BAD_POINT);
投稿したクライアントのホスト名がDNSブラックリストデータベースに登録されているかを検査します。
第一引数(上記数字の8)がDNSブラックリストデータベースに登録されてた場合に加算するポイントです。
52行目〜57行目は上から順に検査していき41行目の$this->SB_POINTに達した時点で以降の検査をスキップします。
検査の順番を変えたい又は検査を除外(54行目のように先頭に//を付与)したいという方はお好みでカスタマイズして下さい。
【4】ダウンロードしたspam-bye2.phpはEUCコードで書いてありますので、UTF8環境の方は文字コードを変更して下さい。
【5】wp-content/pluginsにspam-bye2.phpをアップロードします。
【6】WordPressの管理画面->プラグインでspam-bye2を有効化します。
【7】wp-comments-post.phpの26行目あたりに以下の1行を挿入します。
※WordPressのバージョンによっては多少違うかもしれません。(ウチはver2.1.3)
=============================================================================================
$comment_author = trim($_POST['author']);
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment']);
/*↓これを挿入↓*/
if (isset($SB2)) { $SB2->SPAM_BYE2_COMMENT($comment_author_url,$comment_content); }
=============================================================================================
以上で完了です。
DNSBL、URLBLの検査はDNSを参照するので投稿時は多少パフォーマンスが落ちます。
まぁ〜ホントに勢いで適当に作ってしまったものなので、ご利用は自己責任でお願いしますネ!
あ、ちなみにこのプラグイン、WordPress以外のPHPスクリプト(例えば掲示板とか)でも普通に使えます。
↓な感じで追加するだけ┐(´∀`)┌
=============================================================================================
require(”./spam-bye2.php”);
if (isset($SB2)) { $SB2->SPAM_BYE2_COMMENT($URL,$COMMENT); }
=============================================================================================
« 閉じる