Прежде всего я хотел бы отметить, что это попытка обучения моей собственной базы данных, чтобы лучше понять инъекции MySQL для защиты моего собственного кода.
Мне нужно разработать пару примеров того, как инъекция MySQL может быть построена на основе следующего кода. Это базовая система входа в систему, где я принимаю имя пользователя и пароль без экранирования
$user = (!empty($_POST['user'])) ? $_POST['user'] : '';
$pass = (!empty($_POST['pass'])) ? $_POST['pass'] : '';
Затем запрос MySQL пытается найти введенные имя пользователя и пароль в моей таблице, называемые пользователями, следующим образом:
$res = mysql_query("SELECT * from users where user='{$user}' AND pass='{$pass}'");
Это не экранированный ввод, и я пытаюсь придумать инъекции MySQL:
- обойти пароль, зная имя пользователя законного пользователя (один пользователь в моей таблице пользователей - тестер), и
- инъекция, которая полностью удалит таблицу users .
Я попробовал пару примеров внедрения MySQL из Википедии , но я предполагаю, что {}
в моем запросе предотвращает внедрение, поэтому я был бы признателен за помощь от тех, кто уверен с этим, и спасибо всем.