2015-03-25 2 views
1

Что касается безопасности; Должен ли я проверять каждую страницу на количество отправленных переменных, размер переданных переменных и блокировать GET, если они не нужны на странице, например.PHP: злоупотребление POST и GET

Я имею в виду, может быть, кто-то посылает очень большой текст много раз, как переменные GET, чтобы перегрузить мой сервер.

Возможно ли это? что я могу сделать с этим?

+0

Почему вы используете 'GET' для отправки огромных данных? –

+0

@ Тестирование Нет, я беспокоюсь о хакерах – omidh

+1

, вам следует рассмотреть возможность использования сеансов и IP-адреса и трафика для проверки количества и типа вызовов, отправляемых пользователем. Возможно, вы можете контролировать перегрузку данных. Но все же вам нужно учитывать количество факторов безопасности. –

ответ

1

С помощью запроса GET вы не можете отправлять огромное количество данных (у Apache по умолчанию 8000 символов, check browser limitations here). И если вы не используете нигде параметры $_GET, то это будет в основном не влиять на сервер. Здесь важны запросы в секунду. Обычный пользователь не будет генерировать много запросов.
Если вы ищете дыры в области безопасности, начните с ограничений выполнения загруженных файлов (like PHP code in image.jpg) и другого небезопасного доступа к файлам, XSS attacks, weak passwords generation и так далее.

+1

Ссылка в парах статей OWASP, так что OP ссылается на тип описанных вами атак, и вы получите от меня верхнюю защиту. –

+1

@ ʰᵈˑ обновлен со ссылками на ресурсы – Justinas

1

Мой ответ несколько ссылок на ваш вопрос на ваш комментарий:

Нет, я волнуюсь о хакерах


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

Вы всегда можете ограничить запросы GET (по умолчанию около 8 КБ для большинства серверов) где-то в конфигурациях сервера. Вы также можете создать пользовательский номер 414, объясняющий причину сокращения длины запроса.

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

1

Существует большая проблема с тем, как значения POST/GET обрабатывались на большинстве языков, включая PHP, что может привести к атакам DOS с помощью специально обработанных запросов. Это было впервые обсуждено в this talk (слайды доступны here).

Вы также можете прочитать об этом here и here. Основная идея заключалась в том, что POST/GET являются массивами, а массивы хранятся с использованием hashtables. Злоумышленник может создать DOS, целенаправленно создавая коллизии (данные имеют одно и то же значение хэш-функции), что приводит к множеству вычислений.

Но это не то, что нужно обрабатывать на уровне приложения, поэтому вам, как кодер PHP, не нужно беспокоиться об этом. Проблема, описанная выше, связана с тем, как PHP обрабатывает хеш-таблицы, но вы также можете предотвратить ее, ограничив размер запросов POST/GET в вашей конфигурации PHP.

Если вы беспокоитесь о DDoS, это также не должно обрабатываться вашим кодом приложения, но внешне, например, через брандмауэр.