YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-03-20 (水)


[一語一絵/IT系]

コメントスパム対策 / 2008-07-13 (日)

先月実施したコメントスパム対策に問題発覚。

// コメントスパム対策の文字列チェック by YANO
define(ANSICHAR_STR,"/^[ -~]+$/");
function IsSpamMessage($string){

    // TABや改行を削除
    $string = mbereg_replace("[\\s]+", "", $string);

    // 全て半角ANSI文字なら1
    if (preg_match(ANSICHAR_STR, $string)) {
        return 1;
    }
    else{
        return 0;
    }
}
において、全体の文字種チェックを一発で行う為に改行やTABを削除していたmbereg_replace関数で、pattern文字列の\が重なってなかったのでTABが入っていたらチェックをパスしていた。

というバグでした。