Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 26 Май, 2012, 12:28:20

Страниц: [1] 2
Печать
Автор Тема: php5 фильтрация данных  (Прочитано 288 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ТырБыр    ↓ 
08 Февраль, 2012, 08:22:25
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Здравствуйте. Помимо старых знаний, я прочитал много про фильтрацию данных в пятой версии. И честно говоря, так и не понял, есть ли оптимальный вариант.
Все понятно с автоматизаторами (маджикквуотерами, слешами и прочимо глобалазами) я их не поддерживаю и понимаю что контролировать надо все самому.
 
И все-таки. Как фильтровать пользовательский ввод. Какие методы (помимо учета включеных автокавычек и соответствующих анти действий) нужно использовать, насколько и какие самостоятельные конструкции надо городить над, например, filter_input?
 
Извините, если я непонятен, я более чем новичок. Хочется понять принцип определения достаточности.
Записан
ТырБыр    ↓ 
08 Февраль, 2012, 08:27:48 , спустя 5 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Поясню, вопрос родился из-за просмотра большого количества самостоятельных решений
Записан
kostyl    ↓ 
08 Февраль, 2012, 09:18:36 , спустя 50 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3526
Сила слова: 1.7

какая разница, главное получить из одного другое или отказаться получать если всё плохо на столько
Записан

качество жизни обратно пропорционально количеству лени
lolcat    ↓ 
08 Февраль, 2012, 11:40:54 , спустя 2 часа 22 минуты 18 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: -3
Сообщений: 367
Сила слова: -0.82

Принцип простой. Для чего фильтруют данные? Из соображений безопасности. Чтобы не впихнули html/js - раз, чтобы не провели инъекцию - два.
Первое решается strip tags или чем-то подобным. А еще можно использовать текстовые парсеры, движки разметки и т.п. В моей имиджбордочке html фильтруется при помощи texy.
Вторая проблема актуальна только для тех, кто ДО СИХ ПОР пользуется функциями работы с БД навроде mysql_query(). Не надо выполнять запросы напрямую. Пользуйтесь подготовленными выражениями. И не будет этой проблемы. Пусть хоть обосрутся, подсовывая кавычки.
 
Еще можно преобразовывать символы в их мнемоники или html-сущности, обязательно, если используется xhtml.
 
В общем, советую читать документацию, в ней все ясно и понятно изложено. Pro-tip: читать комментарии к документации, разбираться в приведенных примерах.
Записан
ТырБыр    ↓ 
09 Февраль, 2012, 12:25:44 , спустя 44 минуты 50 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Большое спасибо. По видимому я столкнулся с такой проблемой, что без возможности отследить историю появления, сейчас мне доступны ВСЕ наработки и примеры за всю историю (хотябы на официальном сайте), поэтому и сложно понять, зачем они есть при наличие все тогоже filter_var, которое вы повсей видимости не используете? Ведь смысл еще в том, что не хочется учить то, от чего откажутся, например, в 6ой версии. Немного подожду, попробую, вскоре постараюсь быть более конкретным в примерах.
 

Записан
lolcat    ↓ 
09 Февраль, 2012, 12:35:51 , спустя 10 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: -3
Сообщений: 367
Сила слова: -0.82

Незначительным мелочам внимание придаешь. Надо от задачи идти.
Записан
kostyl    ↓ 
09 Февраль, 2012, 02:04:07 , спустя 1 час 28 минут 16 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3526
Сила слова: 1.7

ТырБыр, надо понять принципы, а не искать решение, которые каждый на свой вкус делает, просто зная принципы...
Записан

качество жизни обратно пропорционально количеству лени
master    ↓ 
09 Февраль, 2012, 01:59:04 , спустя 11 часов 54 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

Пусть хоть обосрутся, подсовывая кавычки.
представил как это...
Записан

ТырБыр    ↓ 
12 Февраль, 2012, 12:39:54 , спустя 2 дня 10 часов 40 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Спасибо, я принципов и искал. Смутили эти новые теги.
 
Вопрос в догонку. Правильно ли я понимаю что такие как $_POST экранируются в любом случае и не допускают отключения чтобы их не "того"?
Записан
kostyl    ↓ 
12 Февраль, 2012, 12:56:00 , спустя 16 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3526
Сила слова: 1.7

чего того, кого их?
Записан

качество жизни обратно пропорционально количеству лени
ТырБыр    ↓ 
12 Февраль, 2012, 01:14:30 , спустя 18 минут 30 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Ну как чего ... того!
 
Я вроде бы все меджики отключил, а переменные $_POST всеравно при изъятии экранированы.
Записан
kostyl    ↓ 
12 Февраль, 2012, 08:21:42 , спустя 19 часов 7 минут 12 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3526
Сила слова: 1.7

значит не все отключил или старые данные остались
Записан

качество жизни обратно пропорционально количеству лени
master    ↓ 
12 Февраль, 2012, 10:12:45 , спустя 1 час 51 минуту 3 секунды
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

ТырБыр, phpinfo() покажи
Записан

ТырБыр    ↓ 
26 Февраль, 2012, 11:35:38 , спустя 14 дней 1 час 22 минуты 53 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 8
Сила слова: 0

Извините, насчет экранирования сЛошил. (перепутал локальный и удаленный хост).
 
Зато я видимо понял, что ходел спросить. ))) Правильно ли я понимаю что:
 
1) хранение в GPC массивах опасного содержимого допускается и не может навредить, покуда не начинаешь его выводить или делать его частью запроса и т.п.
(Ведь тот же $_POST наполняется пользователем через форму, и кроме magic_quotes нет способа на это содержимое воздействовать на шаге ввода. Следовательно, этот magic сделан для защиты от необдуманного вывода, как средство, чтобы вместо реальной бяки получился мусор.)
2) экранирование, а точнее конкретные действия зависят от конкретной ситуации, и не имеет значения (помимо производительности) как ты его делаешь, addslashes или даже str_replace("<", "&lt;", $text) или еще как.
Записан
kostyl    ↓ 
26 Февраль, 2012, 11:59:34 , спустя 23 минуты 56 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3526
Сила слова: 1.7

Маджик квотс это старое гавно, как и addslashes, которое при нём делается.
Ты можешь либо использовать данные полученные от ползователя, либо не использовать. Например, если ты просишь пользователя ввести одни цыфры, а он вводит буквы - пошел он  нахуй сразу, даже не надо обрабатывать эти данные.
Если он вводит всё как ты просишь и у тебя теоретически нет претензий, тогда ты просто вставляешь это в БД, используя механизмы защиты драйверов БД (типа mysqli->escape (или как там...), pdo->prepare->execute) ), а если выводишь данные будь то из базы или нет, то преобразуешь их в html-сущьности как бы (htmlentities htmlspecialchars).
Вот и всё.
Записан

качество жизни обратно пропорционально количеству лени
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Frozzeg, mario