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 :: Нужна ли тут проверка?

 PHP.SU

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


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

> Без описания
LifePlay
Отправлено: 06 Февраля, 2011 - 04:20:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


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




Вот код

PHP:
скопировать код в буфер обмена
  1.  
  2. $query = mysql_query("SELECT * FROM `cat_banavtorip` WHERE `ip`='".$_KATALOG['ip']."' and ua='".$_KATALOG['ua']."'");
  3. $info_bann = mysql_fetch_assoc($query);
  4. mysql_query('DELETE FROM `cat_banavtorip` WHERE `id` = "'.$info_bann['id'].'" LIMIT 1');
  5.  


Надо проверять $info_bann['id'] или очищать перед вставкой в sql запрос?
Прочитал где-то что верить нельзя никаким данным из вне даже из базы данных но id полюбасу будет число так как в базе данных id имеет числовое значение. Или хакер сможет подменить это значение?
 
 Top
Мелкий Супермодератор
Отправлено: 06 Февраля, 2011 - 08:58:47
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




А в чём великий смысл двойного запроса?
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM `cat_banavtorip` WHERE `ip`='".$_KATALOG['ip']."' AND ua='".$_KATALOG['ua']."'" limit 1

Если переменные не проходят жёсткую проверку, то воткнуть mysql_real_escape_string.


-----
PostgreSQL DBA
 
 Top
TM123
Отправлено: 06 Февраля, 2011 - 11:09:39
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2010  
Откуда: Москва


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




При выборке из базы проверять не надо, в ней не может быть ничего, что может разрушить SQL запрос, за исключением текстовых полей, в них может быть все что угодно и в таком примере как вы написали текстовые поля проверять надо.


-----
Программим потихоньку http://www[dot]altycon[dot]ru
 
 Top
JustUserR
Отправлено: 06 Февраля, 2011 - 16:19:25
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




LifePlay пишет:
Надо проверять $info_bann['id'] или очищать перед вставкой в sql запрос?
При осуществлении создания SQL-запросов базирующихся на основе неизменяемой конструкцуии оператора и интерполируемых информационных полей - необходимо произведение предшествующей проверки по отношению уровней трактования для включаемых объектов относитеольно разделительных элементов - в частнсоти для строковых констант необходимо проведение операции экранирование и сопоставления представления кодовой таблицы - в то время как для числовых элементов необходимо применение операции явного приведения ассоциированной строки данных в реальной число


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB