如果我用md5加密MYSQL注入,它还会执行吗?如果在执行“MYSQL_real_escape_string”之前对MYSQL注入进行加密,它是否能够使MYSQL注入为空?我应该在加密之前运行“mysql_real_escape_string”吗?

最佳答案

md5() function返回一个包含ASCII字符0-9和a-f的字符串。SQL注入需要使用类似于'"的字符,因此md5()生成的散列字符串不会导致SQL注入,因为该算法工作正常。
这样你就不用担心了:

$username = mysql_real_escape_string( $_POST['username'] );
$password = md5( $_POST['password'] );
mysql_query("SELECT * FROM users WHERE user='$username' AND pass='$password'");

但最好总是使用mysql_real_escape_string()转义传递给查询的数据。

关于php - MYSQL注入(inject)和md5加密,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7042216/

10-11 07:34