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]   

> Без описания
neatek
Отправлено: 17 Января, 2012 - 16:07:39
Post Id



Гость


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


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




Помогите с фильтрацией данных, как нужно обрабатывать поля текстовые?
кроме strip_tags, trim, htmlspecialchars.
 
 Top
EuGen Администратор
Отправлено: 17 Января, 2012 - 16:23:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Зависит от того, что Вы желаете с ними делать. Запись в БД - тогда mysql_real_escape_string
Вывод - тогда htmlspecialchars к примеру. Возможно, nl2br пригодится.

Вот что я бы рекомендовал - не отрезать html-сущности при запись в БД, но применять функции по их экранированию и замене при выводе данных.

А при валидации данных - самое лучшее и мощное средство это регулярные выражения.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
neatek
Отправлено: 17 Января, 2012 - 16:52:03
Post Id



Гость


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


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




к примеру, комментарии, как обезопасить базуданных?

mysql_real_escape_string - просто экранирует символы?, т.е. "сломать" построенный запрос в mysql_query нельзя, так?
 
 Top
EuGen Администратор
Отправлено: 17 Января, 2012 - 16:53:23
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Можно, если идет, скажем, поиск по LIKE или REGEXP - тогда это нужно предусмотреть и экранировать соответствующие символы (% в первом случае и preg_quote применять для второго).
В остальных случаях mysql_real_escape_string достаточен.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
neatek
Отправлено: 17 Января, 2012 - 20:27:16
Post Id



Гость


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


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




Т.е. сломать запрос можно если используется в самом запросе LIKE или REGEXP?
А если просто WHERE id='1' ?

Цитата:
% в первом случае

Не совсем понятно... т.е. replace делать на пустоту знака %?
preg_quote и вот это, оно ставит перед каждым символом (\\ + * ? [ ^ ] $ ( ) { } = ! < >|) слеш... а нельзя ли просто запретить в комментариях все кроме [а-я!?.,] ? и сделать htmlchar что-то там, кароч заменяет на %amp; и.т.д?
 
 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