Следующая команда разрешает успешный вход в систему независимо от пароля:
SELECT * FROM users WHERE username = 'eve'-- and password = 'asdasdasd';
Поскольку она игнорирует все после "-"
Но следующая команда не:
SELECT * FROM users WHERE username = 'eve'--' and password = 'asdasdasd';
по какой-то причине из-за дополнительного апострофа при использовании sql инъекции, генерируемой из следующей команды SQL:
"SELECT * FROM users WHERE username = '" + username + "' and password = '" + password + "';"
и с использованием следующих входных данных:
имя пользователя: eve '-
пароль: asdasdasd
Почему должно быть важно, чтобы после комментария был один апостроф оператор ??? И какой будет правильный ввод, чтобы он игнорировал все остальное?
Спасибо