-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 回答