Проверка данных на PHP отправленных методами POST и GET

Добавлен: 

Проверка данных на PHP отправленных методами POST и GET

Любое WEB приложение генерирует страницу исходя из данных отправленных клиентом, данные могут отправляться только двумя способами POST и GET, эти данные доступны скрипту как суперглобальные массивы $_POST и $_GET.

Возможные проблемы

Часто бывает, что переданный параметр определяет количество циклов какого то действия, или данные переданные как параметр записываются на сервер, “ну и что?” – скажете вы, но представьте ситуацию, когда вместо параметра со значением – 20, который определяет количество определённых циклов, передать параметр – 100000000000, тогда ваш сервер, обрабатывая такое количество циклов будет очень нагружен, и нагрузка спадёт только после достижения “max_execution_time”, а если таких запросов будет 10 в секунду, или 100, то это уже ДОС атака. Или другой пример, определённый скрипт, записывает в базу данных или в файл на сервере, данные переданные клиентом, но вместо 30 килобайт, клиент передаёт вам 10 мегабайт какого то текста, и такая передача запускается каждую секунду, то атакующий, за 10 минут запишет вам на сервер 6 гигабайт какого-то мусора, вряд ли это кому-то понравится. Или вот ещё пример, у вас на сайте гостевая книга, и нет обработки данных, тогда пользователь сможет вставить любой HTML код к вам на сайт, и это может быть куча ссылок на порно сайты, и поисковики это увидят. Таких примеров может быть масса, рассмотрим действия которые помогут избежать подобных проблем.

Если значение – число, контролирующее количество циклов

Ну, для начала, нужно оговорится что таких конструкций лучше не использовать вовсе.

Для начала проверяем строку на длину, и при необходимости обрезаем (substr(), mb_substr());

Далее, если это должно быть число, убедимся, чтобы это было число (is_numeric()), а если значение не числовое просто повлечёт за собой ошибку и пользователь не увидит никакого результата, то можно не проверять.

А теперь можно проверить, значение числа, оно не должно превышать максимально возможного для вашего скрипта.

Если значение – строка

Строку нужно проверять на длину и обрезать, если она слишком большая, не будем же мы записывать 10 000 символов одного комментария (substr(), mb_substr());

Если значение – строка которая пишется на сервер и выводится в браузер

Примером может послужить гостевая книга, форум, или комментарии. Перед тем, как записывать такие данные их нужно избавить от HTML кода, сделать это можно просто отбросив HTML теги (strip_tags()), или преобразовав спецсимволы в HTML сущности(htmlspecialchars()).

Ещё, могут быть более детальные проверки, например, на правильность заполнения e-mail или правильность ввода пароля, и т.д., но самые критические моменты мы разобрали.

Не забываем оставлять комментарии и отзывы, нам важно ваше мнение!

А еcли статья Вам очень понравилась и Вы считаете, что она достойна внимания. Тогда просто поделитесь ею, в социальной сети:


Интересная рекламма:


Возможно вам будет интересно
Функция (скрипт) для отбрасывания ненужных символов из строки на PHP На что влияет тИЦ и PR сайта, как влияет тИЦ и PR на поисковую выдачу Скачать бесплатно Adobe Flash Player v 11.6.602.180 – программа для воспроизведения на веб-страницах видео- и аудиофайлов

Комментарий добавил: Гость - фываыфва
Добавлен: 24 05 2013 09:58:12
Гость - фываыфва

Добавление комментария

Имя -

E-mail -





Читать в Яндекс.Ленте

Яндекс.Метрика


Power by xDroid. Copyright © 2009 - 2016 VEB.name
Копирование информации только с обратной ссылкой
Время генерации страницы : 0.0075 сек.