Проверка входящих данных

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Всем привет
Необходимость проверки пришедших извне данных является неоспоримой и очевидной. Однако, хотелось бы уточнить её алгоритмы для каждой конкретной ситуации. Например, имеются htmlspecialchars, trim, strip_tags, mysql_real_escape_string и прочие функции.
Например, хотелось бы знать какие из них можно отбросить, и в каком порядке применить оставшиеся.
У меня сейчас (в одну строку для наглядности:(
Код:
function mcheck($str){
$str=htmlspecialchars(mysql_real_escape_string(strip_tags(trim($_POST['str']))));
return $str;
}
Потом $str уходит в базу данных. Правильно ли это?
 
если ты только начинаешь разбираться с контролем входящих данных, то применяй хорошие практики и современные инструменты.

Для просмотра ссылки Войди или Зарегистрируйся доступно в php начиная с версии 5.2.0
 
Смотря что, где и для чего фильтруем. Иногда можно обойтись просто указанием типа.
 
Просто данные, записываемые потом в MySQL.
Числовые проверяю по шаблону \d, потом ставлю (int)
Строковые (типа название города, имя, или же строка поиска по которой выборка осуществляется) — методом, описанным выше.
Ещё есть html-код из WYSIWYG-редактора (форматированный текст). К нему strip_tags() не применишь, ибо тогда форматирование уберётся. Как это поле проверять? Перебором вручную? Разрешить стрипу некоторые теги и прорускать только атрибут style?
В принципе как это реализовать догадываюсь, но не знаю правильно ли это будет.
 
Ну они не такие уж и новые, просто в версии 5.2.0 они в составе php.
До этого быле в pecl'e.

Да их вполне достаточно, много чего проверяют и работают мега-шустро.
 
Думаю что и на это найдется управы у хакеров...
 
управы на всех всегда найдется.
вопрос в том насколько просто эта управа реализуема.
не надо разводить флуд.
 
А что делать в ситуации когда надо пропустить html-код из визуального редактора?
 
Вообще есть FILTER_SANITIZE_MAGIC_QUOTES.
Лично я предпочитаю пользоваться функциями типа mysqli_real_escape_string.
Они эскейпят символы основываясь кодировке соединения.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху