Я только изучаю SQL-инъекцию и пытаюсь внедрить свой код на основе PHP (с помощью PHP Phalcon Framework). Я пытаюсь сделать SQL инъекцию в моем логине. Однако, когда я пытаюсь выполнить инъекцию, я не могу сделать это, и я не знаю, вызвано ли это тем, что мой код уже устойчив к SQL-инъекции или я выполняю инъекцию неправильно.
Мой логинраздел содержит адрес электронной почты и пароль. Для раздела электронной почты я вставляю test@test.com' or 1=1
и вставляю какой-то случайный пароль.
Однако появляется сообщение об ошибке, показывающее что-то вроде этого:
Scanning error before ' LIMIT :APL0:' when parsing: SELECT [Test\\Models\\Login].* FROM [TEST\\Models\\Login] WHERE email='test@test.com' or 1=1 --' LIMIT :APL0: (119)
Вот проверочный код входа в систему:
public function verifyLogin ($email, $password) {
$records = $this->findFirst("email='$email'");
if ($records && sha1($password)==$records->password) {
return ($records->id);
}
return (false);
}
Как узнать, является ли моя инъекция неправильной или код уже устойчив? А если инъекция все-таки не так, как это исправить?