-1

次のスクリプトを使用して MYSQL テーブルの一部のデータを更新しています。そのため、ユーザーからデータを取得しています。ただし、javascript および html タグを防止するものではありません。

$attri= //containing field name like ("name=?, email=?")
$value= //containing corresponding values like ("john", "email@exam.com")

$sql_pro = "UPDATE regist SET ".$attri." WHERE user_id = ".$_SESSION['user_id'];
        $stmt_pro = $db->prepare($sql_pro);
        $i=1;
        foreach($value as $k=>$v){
            $stmt_pro->bindValue($i,$v, PDO::PARAM_STR);
            $i++;
        }
        $stmt_pro->execute();
        if($stmt_pro){
            return true;
        }

javascript と html タグのインジェクションを防ぐにはどうすればよいですか?

更新 PHP PDO でデータベースに追加する前に、入力フィールド データをサニタイズする良い方法はありますか。

mysql_real_escape_string、htmlentities、strip_tags でそれを行う方法を知っています。ありがとう

4

1 に答える 1

-1

適切なフォーム入力検証と出力エスケープが必要です。htmlspecialchars()文字列を表示するときに使用します。

入力をサニタイズする限り、strip_tagsあなたが望むことを行うためのクイックアンドダーティな方法ですが、許可されている文字のリストを作成し、正規表現を使用して検証することをお勧めします。

if (preg_match('/[^a-zA-Z0-9_]/', $username)) {
    //Contains a character not in A-Z,0-9, or underscore
} else {
    //Username is fine
}
于 2013-07-15T06:44:10.593 に答える