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
Форумы портала PHP.SU :: Версия для печати :: Фильтрация данных
Форумы портала PHP.SU » » Вопросы новичков » Фильтрация данных

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

1. neatek - 17 Января, 2012 - 16:07:39 - перейти к сообщению
Помогите с фильтрацией данных, как нужно обрабатывать поля текстовые?
кроме strip_tags, trim, htmlspecialchars.
2. EuGen - 17 Января, 2012 - 16:23:45 - перейти к сообщению
Зависит от того, что Вы желаете с ними делать. Запись в БД - тогда mysql_real_escape_string
Вывод - тогда htmlspecialchars к примеру. Возможно, nl2br пригодится.

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

А при валидации данных - самое лучшее и мощное средство это регулярные выражения.
3. neatek - 17 Января, 2012 - 16:52:03 - перейти к сообщению
к примеру, комментарии, как обезопасить базуданных?

mysql_real_escape_string - просто экранирует символы?, т.е. "сломать" построенный запрос в mysql_query нельзя, так?
4. EuGen - 17 Января, 2012 - 16:53:23 - перейти к сообщению
Можно, если идет, скажем, поиск по LIKE или REGEXP - тогда это нужно предусмотреть и экранировать соответствующие символы (% в первом случае и preg_quote применять для второго).
В остальных случаях mysql_real_escape_string достаточен.
5. neatek - 17 Января, 2012 - 20:27:16 - перейти к сообщению
Т.е. сломать запрос можно если используется в самом запросе LIKE или REGEXP?
А если просто WHERE id='1' ?

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

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

 

Powered by ExBB FM 1.0 RC1