выполнение мультизапроса в функции mysql_query () - PullRequest
0 голосов
/ 26 ноября 2011

предположим, у меня такой запрос:

$std_id =   $_POST['std_id'];
$name   =   $_POST['name'];
$family =   $_POST['family'];

$sql    =   "insert into student set
 std_id =   $std_id,
 name   =   '$name',
 family =   '$family'"; 
$query  =   mysql_query($sql,$conn); 

Я прочитал в книге безопасности php, что если пользователь вводит значение для семейного поля, например:

ahmad';drop database test#

может удалить базу данныхtest;

но мы знаем, что функция mysql_query () позволяет выполнять только один запрос.
Я хочу знать, как этот ввод может быть небезопасным

Ответы [ 3 ]

3 голосов
/ 26 ноября 2011

В вашем вопросе много заблуждений.
Давайте разберемся с ними.

  1. mysql_query () не поддерживает выполнение нескольких запросов.
    (так что ничего не стоит удалять)
  2. удаление таблиц в отдельном запросе - это , а не единственный способ внедрения SQL.
    (так что бесполезно снова что-либо удалять)
  3. Чтобы защитить свой запрос, вы должны следовать некоторым известным методам, а не каким-то ручным изобретениям сомнительной эффективности.
3 голосов
/ 26 ноября 2011

Просто беспокоиться о множественных запросах недостаточно для защиты SQL Security ... На SO так много вопросов / ответов, чтобы вы могли прочитать об этой теме ..

Также хорошие ресурсы на php.net

0 голосов
/ 26 ноября 2011

Использование нескольких запросов, разделенных точкой с запятой, - не единственный способ использовать ваши запросы, это просто очень простой пример.Это будет работать, когда вы используете mysqli_multi_query().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...