Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: защита от sql инъекции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gheka
Отправлено: 26 Ноября, 2015 - 00:47:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Здравствуйте есть запрос

PHP:
скопировать код в буфер обмена
  1.  
  2. $kl = 20;
  3.  
  4. $t = "SELECT * FROM `guest` WHERE `status`='%d' id DESC LIMIT %d,%d";
  5. $result = mysqli_query ( $LinkToBD, sprintf ( $t, mysqli_real_escape_string ( $LinkToBD, '0' ),
  6.                 mysqli_real_escape_string ( $LinkToBD, '3' ),
  7.                 mysqli_real_escape_string ( $LinkToBD, $_GET ['str'] ),
  8.                 mysqli_real_escape_string ( $LinkToBD, $kl ) ));
  9.  
  10.  


Есть проблема если допусти в адресной строке указать
test.ru/guest.php?str=1

то проходит нормально всё

если указать в запросе одинарную кавычку
test.ru/guest.php?str='

то вылазит ошибка
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-15,15' at line 1

Можно конечно проверять $_GET ['str'] на число например так is_int ($_GET ['str']) и это будет работать но может есть более правильный способ?

(Отредактировано автором: 26 Ноября, 2015 - 00:49:13)

 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Ноября, 2015 - 00:49:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PDO + prepared statement
(Добавление)
В майскули препаред тоже есть.
 
 Top
gheka
Отправлено: 26 Ноября, 2015 - 01:08:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




DeepVarvar пишет:
PDO + prepared statement
(Добавление)
В майскули препаред тоже есть.


Но это решение для запроса написанного другим способом.
У меня процедурный стиль и в этом случае подготовку запроса не выполнить. Или я не прав?
Подскажите пожалуйста.
 
 Top
esterio
Отправлено: 26 Ноября, 2015 - 02:52:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




http://php.net/manual/ru/mysqli.prepare.php
есть процедурный стиль
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB