mysql_real_escape_string在所有情况下都不够,但是绝对是一个很好的朋友。该 更好的 解决方案是使用
预处理语句
//example from http://php.net/manual/en/pdo.prepared-statements.php$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");$stmt->bindParam(1, $name);$stmt->bindParam(2, $value);// insert one row$name = 'one';$value = 1;$stmt->execute();
另外,不要忘记可以用来丢弃任何无效/可疑字符的 HTMLPurifier 。
......
编辑: 根据以下评论,我需要发布此链接(在造成混乱之前,我应该做的)
mysql_real_escape_string()与预备语句
报价:
mysql_real_escape_string()容易发生影响addslashes()的同类问题。
Chris Shiflett (安全专家)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)