ワードプレスでスパム対策に「Block Spam By Math Reloaded」を使ってましたが
あっさりと破られました。
んで改良
もともと 数字+数字を入力するようになっていました
これだと、2桁プラス2桁で200通り程度でヒットするため
数字を漢字にかえて
足すではなく連結にしました。
総当りでも1万通り以上の組み合わせが必要になるはずです。
.
あきらめろって。
改良コードは
[php]
//200行目あたり
//以下を追加
$kanji=$mathvalue0;
$kanji=str_replace(’0′,’〇’,$kanji);
$kanji=str_replace(’1′,’一’,$kanji);
$kanji=str_replace(’2′,’二’,$kanji);
$kanji=str_replace(’3′,’三’,$kanji);
$kanji=str_replace(’4′,’四’,$kanji);
$kanji=str_replace(’5′,’五’,$kanji);
$kanji=str_replace(’6′,’六’,$kanji);
$kanji=str_replace(’7′,’七’,$kanji);
$kanji=str_replace(’8′,’八’,$kanji);
$kanji=str_replace(’9′,’九’,$kanji);
$kanji1=$mathvalue1;
$kanji1=str_replace(’0′,’〇’,$kanji1);
$kanji1=str_replace(’1′,’一’,$kanji1);
$kanji1=str_replace(’2′,’二’,$kanji1);
$kanji1=str_replace(’3′,’三’,$kanji1);
$kanji1=str_replace(’4′,’四’,$kanji1);
$kanji1=str_replace(’5′,’五’,$kanji1);
$kanji1=str_replace(’6′,’六’,$kanji1);
$kanji1=str_replace(’7′,’七’,$kanji1);
$kanji1=str_replace(’8′,’八’,$kanji1);
$kanji1=str_replace(’9′,’九’,$kanji1);
//以下を修正
echo \’
//360行目あたり
//elseif ( ( $val0 == '' ) || ( $val1 == '' ) || ( intval($val2) != (intval($val0) + intval($val1)) ) ) {
//以下に修正
elseif ( ( $val0 == '' ) || ( $val1 == '' ) || ( trim($val2) != (trim($val0).trim($val1)) ) )
[/php]
.

