NP_CustomURL 不具合修正 Nucleus CMS NewAdmin tag_support
Dec 01
キャプチャのデータベーステーブルのオーバーヘッドがひどいので、もっと簡単な NP_NoRobotComment を導入してみました
チェックボックスのチェックをはずすだけというお手軽さなのに、チェックを入れることは出来てもはずすのは苦手なロボットに対して、かなり有効な手段
それでもチェックをすり抜けてやってくるコメントスパムに対抗するために、「英語のみのコメントを拒否する」機能があるんですが、作者の PUSHMAN 氏も書かれているように、ページのタイトルを読み取ってそれを一緒にコメントに埋め込まれると、そのチェックをすり抜けてしまいます
そこで、多くのサイトでページタイトルに使われていると思われる「ブログ名」と「アイテムのタイトル」をコメントから削除した上で、残された文字列の中に日本語が含まれているかどうかをチェックするように改造してみました
また、コメント本文を UTF-8 にエンコードした上で、「日本語が一文字でも含まれているか?」をチェックするように変更しました
(オリジナルは「英数字以外の文字が含まれているか?」のチェックです(ですよね?))

220行目からの
// English check
の中の
			$cbody = str_replace("\\", '', $cbody);
の次の行から、
			$encode = (_CHARSET == 'EUC-JP') ?
'EUC-JP, UTF-8, SJIS, JIS, ASCII' :
' UTF-8,EUC-JP, SJIS, JIS, ASCII';
$iid = intval($data['comment']['itemid']);
$bid = intval(getBlogIDFromItemID($iid));
$bname = getBlogNameFromID($bid);
$inque = 'SELECT ititle as result FROM %s WHERE inumber = %d';
$inque = sprintf($inque, sql_table('item'), $iid);
$iname = quickQuery($inque);
$cbody = str_replace($bname, '', $cbody);
$cbody = str_replace($iname, '', $cbody);
$cbody = mb_convert_encoding($cbody, 'UTF-8', $encode);
if ($cbody && !preg_match('/[\x80-\xff]/', $cbody)) {
と追加、その次の
			if (preg_match("/^[-a-zA-Z0-9`~!@#\$%\^&\*\(\)_=\+\[\]\{\}\|;\':\",\.\/<>\?\s]+$/", $cbody)) {
をコメントアウト
これで、たとえ日本語のブログ名をコメントの中に混ぜ込まれても、そのほかの本文が英語のみで構成されているコメントは拒否されます

1 Response to “ NP_NoRobotCommentで英語コメントスパムをはじく(ページタイトル混入対策も) ”

  1. pushman Says:
    こんにちは。素晴らしい改造ありがとうございます。現在組み込み作業中ですので(って言ってもコピペして動作チェックしてるだけですが)、明日にはこの改造を組み込んだものが公開できそうです。

    ところで先程、この件とは違う方法ですり抜けられました。一見半角英数字のみなんですが、文字化けの時によく見る、黒い四角の中に「?」があるものが含まれていました。いろいろ文字コードを変えて表示してみると、どうも半角の「キ」だったみたいです。どうやって投稿してるのやら。

    この改造を組み込む前ですので、これからしばらく様子を見ます。

    とにかく、とても勉強になりました。ありがとうございます。

Leave a Reply

OpenID を使ってログインすることができます。

Identity URL:



Web Services by Yahoo! JAPAN

稚拙のプラグイン「NP_NoRobotCommnet」の半角英数字チェックを強化しました。
2006/12/02 10:10
NP_NoRobotComment 改造 @ →C↓C←C↑C
http://shizuki.kinezumi.net/item_377.html 今まで知らなかったんですが、スパムプログラムってチェックを入れるよりも外すほうが苦手なんですね。というわけで、コメント記入の際の設定を逆にしました。今までは...
2006/12/02 01:01

この記事のトラックバックURL
http://shizuki.kinezumi.net/item_377.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_377.htmlが必要です