Логин: skroob
Пароль: 12345′ OR ‘1’ = 1
Если исходный код SQL-таблицы такой, то будут проблемы:
$username = $_POST["username"];
$password = $_POST["password"];
query("SELECT * FROM users WHERE username = $username AND password = $password");
// в итоге при подстановке логина и пароля получаем:
// query("SELECT * FROM users WHERE username = 'skroob' AND password = '12345' OR '1' = '1'");
// '1' = '1', поэтому вход будет произведен.
Правильный код:
$username = $_POST["username"];
$password = $_POST["password"];
query("SELECT * FROM users WHERE username = ? AND password = ?", $username, $password);
// в таком случае при подстановке пароля одинарные кавычки будут отделены дробью /'/