PHP PDO:如何防止javascript和html标签注入

我正在使用以下脚本来更新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来完成它。 谢谢


您需要正确的表单输入验证和输出转义。 显示字符串时使用htmlspecialchars()

就消毒输入而言, strip_tags是一种肮脏的方式来做你想做的事情,但更好的做法是制作允许使用的字符列表并使用regex进行验证。

if (preg_match('/[^a-zA-Z0-9_]/', $username)) {
    //Contains a character not in A-Z,0-9, or underscore
} else {
    //Username is fine
}
链接地址: http://www.djcxy.com/p/93759.html

上一篇: PHP PDO: how to prevent javascript and html tags injection

下一篇: Are PDO statements automatically escaped?