SQL注入用户名和密码
这个问题在这里已经有了答案:
你的问题位于select语句中:
SELECT * FROM users WHERE username='$username' AND password='$password'
试想一下,用户提供的名称' OR 1=1 LIMIT 1 --
注意后面的空格--
它总是准确返回一行结果-这样的登录是有效的,导致执行将是查询:
SELECT * FROM users WHERE username='' OR 1=1 LIMIT 1 -- ' AND password='$password'
mysql会忽略注释,所以查询是:
SELECT * FROM users WHERE username='' OR 1=1 LIMIT 1
在使用它们之前,您应该避开这些值:
$username = mysqli_real_escape_string($link, $_POST["username"]);
看到这个小提琴为例:http://sqlfiddle.com/#!2/fd8be/1(一resultrow - >你的逻辑会说:“登录!” - 甚至不知道任何用户名和/或密码。)
链接地址: http://www.djcxy.com/p/93809.html