Как грамотно предотвратить PHP injection?

Camillo

Новичок
Как грамотно предотвратить PHP injection?

Привет.
Искал инфо по цепям Маркова, но наткнулся случайно на вот такую вот страничку:
http://hack-expo.void.ru/groups/xakepy/txt/showthread8.htm

Cпособ атаки #3: PHP Injection
Данный тип атак становиться доступным всё реже и реже, в основном в скриптах, написанных начинающими программистами. Сама ошибка програмистов заключаеться в опять же в недостатке фильтрации переменных либо в полном её отсутствии. Для примера – имееться форма, с полем ввода текстовой информации, после заполнения и отправки данных на сервер – введённый текст отобразить на главной странице(например комментарий к новостям). Так вот, если отсутсвует элеметарная фильтрация переменной содержащий введённый текст, то тогда можно будет внедрить пхп код в ту самую переменную, и после отправки на сервер, он исполниться.
Как же организовать такую фильтрацию? Например у меня на сайте есть поле, в которое допустимо вводить самые разные символы. Далее информация из поля попадает в БД. Потом при очередном запуске cron'а. Происходит генерация статического файла news.html. Если в БД хранился вредоносный код, то первый посетивший страницу news.html станет инициатором исполнения кода, который "вмонтировался" в страницу. (у меня mime выставлен для html файлов как php приложение) Как быть то? Каким образом отфильтровать данные введенные из формы? Ведь в форму допустимо вводить все возможные символы! Подскажите пожалуйста. Заранее всем благодарен за ответы.

-~{}~ 13.01.06 04:53:

P.S. Есть ли серьёзные (как можно более ёмкие) статьи, посвященные всевозможным способам фильтрации данных перед их обработкой?
 

Popoff

popoff.donetsk.ua
Camillo
По такой же схеме можно было бы попросить серьезную (как можно более емкую) книгу, посвященную всевозможным способам применения условного оператора.

Самый простой подход против РНР-инъекции - не выполнять никакой динамический РНР-код.

htmlspecialchars, is_numeric, mysql_real_escape_string - с какими из этих функций ты не умеешь работать? Если с какими-то не умеешь - тебе прямиком дорога в документацию, там все описано. Если ты хочешь узнать о том, какие еще функции бывают - снова дорога в документацию. Эти другие функции там тоже описаны.

-~{}~ 13.01.06 04:24:

Странные часы. Сначала Camillo в 04:53 дописал кусок к своему сообщению. После этого, в 04:22 ответил я. :)
 

Фанат

oncle terrible
Команда форума
наткнулся случайно на вот такую вот страничку:
не доверяю я неграмотным аффтарам.
если не может даже русский язык освоить, что что уж тут говорить о языках программирования?

Как же организовать такую фильтрацию?
НЕ ИСПОЛНЯТЬ то, что приходит от юзера!
Неужали это настолько не очевидно?
у меня mime выставлен для html файлов как php приложение
с извращениями - это не к нам. это в соседнюю дверь.

-~{}~ 13.01.06 10:43:

Происходит генерация статического файла news.html
у меня mime выставлен для html файлов как php приложение
Так статического или php приложения? Ты, как бы, понимаешь разницу между этими словами?
Если не понимаешь, то рекомендую сначала усвоить её, а потом уже задаваться проблемами страшных пыхапэ инъекций

в любом случае, постарайся запомнить.
что никто никакой идиотской фильтрацией не занимается.
просто обычно у людей хватает ума не генерить пхп скриптов из пользовательского ввода.
 
Сверху