我通过addslashes($str)
转义引号。
当我将输入从文本字段保存到MySQL数据库时,是否足以防止MySQL注入,或者我是否需要进一步过滤输入,因为您可以绕过此转义方法?或者有更好的方法吗?
答案 0 :(得分:2)
您应该阅读PDO中的预准备语句: http://www.php.net/manual/en/pdo.prepared-statements.php
答案 1 :(得分:1)
转义报价绝对不够。最安全的做法是使用参数绑定。请参阅mysqli_stmt::bind_param的文档。
答案 2 :(得分:0)
是的,有。您可以检查以下任何内容的所有参数,具体取决于预期值:
这些是一些基本检查,可以为您节省很多麻烦。另外,为了避免更多问题:
答案 3 :(得分:-1)
你可以这样做:
<?php
$query = mysql_query("SELECT id FROM users WHERE username = '".mysql_real_escape_string($username)."' AND password = '".mysql_real_escape_string($password)."'");
?>
答案 4 :(得分:-1)
我建议使用mysql_real_escape_string或类似功能(取决于您使用的数据库访问方法)。