Покинул форум
Сообщений всего: 113
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Помогите с фильтрацией данных, как нужно обрабатывать поля текстовые?
кроме strip_tags, trim, htmlspecialchars.
EuGen
Отправлено: 17 Января, 2012 - 16:23:45
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Зависит от того, что Вы желаете с ними делать. Запись в БД - тогда mysql_real_escape_string
Вывод - тогда htmlspecialchars к примеру. Возможно, nl2br пригодится.
Вот что я бы рекомендовал - не отрезать html-сущности при запись в БД, но применять функции по их экранированию и замене при выводе данных.
А при валидации данных - самое лучшее и мощное средство это регулярные выражения.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
neatek
Отправлено: 17 Января, 2012 - 16:52:03
Гость
Покинул форум
Сообщений всего: 113
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
к примеру, комментарии, как обезопасить базуданных?
mysql_real_escape_string - просто экранирует символы?, т.е. "сломать" построенный запрос в mysql_query нельзя, так?
EuGen
Отправлено: 17 Января, 2012 - 16:53:23
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Можно, если идет, скажем, поиск по LIKE или REGEXP - тогда это нужно предусмотреть и экранировать соответствующие символы (% в первом случае и preg_quote применять для второго).
В остальных случаях mysql_real_escape_string достаточен.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
neatek
Отправлено: 17 Января, 2012 - 20:27:16
Гость
Покинул форум
Сообщений всего: 113
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Т.е. сломать запрос можно если используется в самом запросе LIKE или REGEXP?
А если просто WHERE id='1' ?
Цитата:
% в первом случае
Не совсем понятно... т.е. replace делать на пустоту знака %?
preg_quote и вот это, оно ставит перед каждым символом (\\ + * ? [ ^ ] $ ( ) { } = ! < >|) слеш... а нельзя ли просто запретить в комментариях все кроме [а-я!?.,] ? и сделать htmlchar что-то там, кароч заменяет на %amp; и.т.д?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.