up_l dmy up_r
dmy home dmy dmy dmy

●WordPressのコメントスパム対策用プラグイン SPAM-BYEBYE●

いろいろコメントスパム対策用のプラグインを試してみたのですが、イマイチ効果が上がらないので自分でプラグインを作成してみました。

■特徴
以下の条件を総合的に判断したポイント制になっております。
1.メッセージに日本語が含まれていない場合
2.メッセージにURLが複数含まれている場合
3.メッセージ(又はURL欄)に含まれるURLがURLブラックリストデータベースに登録されている場合
4.投稿したクライアントのホストがDNSブラックリストデータベースに登録されている場合

※DNSBL、URLBLの検査はDNSを参照するので投稿時は多少パフォーマンスが落ちます。

■導入方法
【1】spam-bye2.phpを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); }

---------------------------------------------------------------------------------------------

以上で完了です。

■おまけ
WordPress以外のPHPスクリプト(例えば掲示板とか)でも使えます。

---------------------------------------------------------------------------------------------
require("./spam-bye2.php");

if (isset($SB2)) { $SB2->SPAM_BYE2_COMMENT($URL,$COMMENT); }
---------------------------------------------------------------------------------------------

▲TOP

Global eye | ホームページ制作業者 | 工作機械製造 | ホームページ制作業者紹介 | インターネット広告
dmy
low_l dmy low_r