フリーフォームのフォークソノミーシステム用に送信されたタグの値をチェックするための正規表現を作成しようとしています。これが私が今持っているものです。
if (!preg_match('/([^-\\a-zA-Z0-9._@\'])+/',$proposedtag)) {
//true, good
return true;
} else {
//false, bad characters
return false;
}
ハイフン、バックスラッシュ、スラッシュ、az、AZ、0-9、ピリオド、アンダースコア、アットマーク、一重引用符を許可し、その他はすべて禁止します。
否定された文字クラスがこれを進める方法だと確信しています...
ただし、上記のコードでは他の文字 (+ など) が許可されているようですが、その理由はわかりません。また、補足として、SQL インジェクションを誤って許可しないようにしているのかどうかはわかりません。任意のヒント?