Я пытаюсь изучить SQL-инъекции, чтобы я мог защитить себя в будущем.Basic sql injection
Вот PHP код:
$req = mysql_query("INSERT INTO ip_change VALUES('', '".$_SESSION['id']."', '".$_POST['raison']."')") or die(mysql_error());
И пользователь имеет полный контроль над $ _POST [ 'Raison'] содержание.
Когда я использую 'hello
, как [ 'Raison'] значение $ _POST я получаю
У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «привет»)»в строке 1
Когда я использую '); DELETE * FROM tabledetest;") or die(mysql_error());--
в $ _POST [„Raison“] значение я получаю
У вас возникла ошибка в синтаксисе SQL; в руководстве, соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «DELETE * FROM tabledetest;") или умереть (mysql_error()); - ')' в строке 1
Так что я не понимаю, почему мой запрос не введен, и я не могу удалить свою tabledetest таблицу.
Любая помощь будет оценена.
Вы можете чтобы посмотреть, что делает [инструмент тестирования] (http://sqlmap.org), чтобы проверить ваше экранирование. Это не всегда так просто, как добавление цитаты. – tadman
Возможно, вам следует прекратить использование 'mysql' и начать использовать' mysqli' или PDO. – Amous
@Amous По иронии судьбы для целей этого упражнения это на самом деле лучший инструмент. Это печально известно. – tadman