我看到几个例子和人们用这种方式在登录表单中查询数据库。 我不完全确定这是做登录表单安全的最佳方式。用于登录表单的简单sql注入解决方案?
这是在PHP中查询:
$query = "SELECT * FROM users WHERE usern = '".$_POST['username']."' AND passw = '".md5($_POST['password'])."'";
足够有MD5()上的密码后,以避免SQL注入? 我认为md5函数会将所有字符和sql字符串转换为32个char字符串。
我可以使用哪些其他方式保护登录表单?
+1对于准备好的语句 - 将要插入的数据传递为**数据**要比将您写入的SQL字符串与来自用户的不受信任的字符串混合在一起 – Deebster 2012-03-30 15:41:22
明确+1准备好的语句......介意你**“mysql_real_escape_string()”**不会转义“%”。请查看php.net/manual/en/function.mysql-real-escape-string.php – 2012-03-30 15:45:28
中的注释部分是的,尽管这只是使用LIKE时的一个问题。你可以使用'addcslashes()'来提供帮助。 – MichaelRushton 2012-03-30 15:48:49