SQL注入用户名和密码

这个问题在这里已经有了答案:

  • 来自“Bobby Tables”XKCD漫画的SQL注入是如何工作的? 12个答案

  • 你的问题位于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

    上一篇: SQL Injection Username and Password

    下一篇: how SQL injection is done?