サポート » プラグイン » MU:スパムのユーザー登録防止法

  • PANDA

    (@bpandaman)


    お世話になっています。
    WPをMU化し、BuddyPressを導入しています。
    最近になって海外と思われるスパムのユーザー登録が増えました・・・

    これに対し、何か有効な手段、プラグインなどがありましたら
    ご紹介いただきたいです。
    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • まず、現在どのような対策(設定。プラグイン等)を入れているか提示したほうがよろしいかと。
    まったく何もしていませんか?

    PANDA

    (@bpandaman)

    スパム系は、Akismetを入れているのですが、
    Akismetはコメントのスパム対策だけだったようなので、
    ユーザー登録に対応するものがあればと・・・

    そのほかに、めぼしいプラグインは入れておりません。

    PANDA

    (@bpandaman)

    書き忘れました、WPは現在最新版を導入しております。3.0.4

    わたしのトコも被害を受けました。
    SI CAPTCHA Anti-Spam(バージョン 2.7.1)で当初は凌いでましたが、
    破られてるか、直打ちされてるようで、1日10~20件来てます。

    SI CAPTCHA Anti-Spam を諦めて、
    簡単な計算問題を出すタイプのプラグイン
    Block Spam By Math Reloaded ( v.2.1.1 ) に変更し、
    私のサイトは、日本人相手なので、半角数字を漢数字に置き換える改造を加えました。
    BuddyPressにも対応していますし、携帯対応化を考えるをこちらにしてよかったかなと思ってます。
    改造方法を下記に示します。よろしければ、参考にしてください
    下記では 例えば 3 を 三 に置き換えてますが
     参 や さん 、弐 たす 壱  などにすれば かなりいけるかと思います。
     改造後は、UTF-8コードで保存してください

    ########################################
    #
    # Block Spam By Math Reloaded ( v.2.1.1 )
    #コメントやユーザー登録の際に、計算式を出すプラグイン
    #
    # 半角文字を 漢数字の置き換える
    #
    #######################################
    #
    #####---- OPEN --------------------------
    #wp-content/plugins/block-spam-by-math-reloaded/block-spam-by-math-reloaded.php
    #
    ####------- FIND -------------------------
    # Last Line
    
    ?>
    
    #
    ## -------- Befoer Add -------------------
    #
    
    /**
     * 半角数字を漢数字に変換する(位取り記法)
     * EX.1,234,567 --> 百二十三万四千五百六十七
     * @param string $instr 半角数字
     *  小数、負数に対応;指数表記には未対応
     *  カンマは削除
     * @return string 漢数字
     *http://www.pahoo.org/e-soul/webtech/php03/php03-05-01.shtm
    */
    function num2kan_decimal($instr) {
    	static $kantbl1 = array(0=>'', 1=>'一', 2=>'二', 3=>'三', 4=>'四', 5=>'五', 6=>'六', 7=>'七', 8=>'八', 9=>'九', '.'=>'.', '-'=>'−');
    	static $kantbl2 = array(0=>'', 1=>'十', 2=>'百', 3=>'千');
    	static $kantbl3 = array(0=>'', 1=>'万', 2=>'億', 3=>'兆', 4=>'京');
    
    	$outstr = '';
    	$len = strlen($instr);
    	$m = (int)($len / 4);
    	//一、万、億、兆‥‥の繰り返し
    	for ($i = 0; $i <= $m; $i++) {
    	$s2 = '';
    	//一、十、百、千の繰り返し
    	for ($j = 0; $j < 4; $j++) {
    		$pos = $len - $i * 4 - $j - 1;
    		if ($pos >= 0) {
    			$ch  = substr($instr, $pos, 1);
    			$ch1 = isset($kantbl1[$ch]) ? $kantbl1[$ch] : '';
    			$ch2 = isset($kantbl2[$j])  ? $kantbl2[$j]  : '';
    			//冒頭が「一」の場合の処理
    			if ($ch1 != '') {
    					if ($ch1 == '一' && $ch2 != '') $s2 = $ch2 . $s2;
    					else $s2 = $ch1 . $ch2 . $s2;
    				}
    			}
    		}
    		if ($s2 != '')  $outstr = $s2 . $kantbl3[$i] . $outstr;
    	}
    
    	return $outstr;
    }
    
    #
    ###----- Find -----------------------
    # About Line 160
    
    	echo '
    	<div class="question">What is '. $mathvalue0 .' + '. $mathvalue1 .' ?</div>
    
    #
    ## -------- Replace With  -------------------
    #
    
    	echo '
    	<div class="question">計算問題 '. num2kan_decimal($mathvalue0) .' + '. num2kan_decimal($mathvalue1) .' は?(半角数字で)</div>
    
    #
    ## --------  Save by the UTF-8 Code!!! -------------------
    #

    utakaさん、こんにちは。
    お教えのように、変更して、UTF-8で保存し、アップ(上書き)しました。
    ありがとうございます。

    プラグインの設定で、
    “Message Settings”の所は、入力できない状態なので、
    v.2.2.2 の 45行目辺り。BSBM_NOTICE_MESSAGEですが、

    define ('BSBM_NOTICE_MESSAGE','簡単な足し算にお答え下さい。そうしないとコメントを投稿できません。(半角数字でお願いします。):-)');

    として、利用しています。
    大変貴重なカスタマイズ情報をありがとうございました。
    これで、スパム対策が出来ました。(^o^)

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「MU:スパムのユーザー登録防止法」には新たに返信することはできません。