2009-10-30 5 views
3

Теперь есть тема, которая может быть использована многими способами. Надеюсь, я смогу отменить его, поскольку я описываю свою проблему и начинаю получать предложения.Отслеживание и тестирование для оскорбительных клиентов в PHP

Я разрабатываю сайт, который будет заменять существующий. Исторически одна из проблем, которые у нас были, - это боты-пауки, которые втягиваются и высасывают весь контент. Теперь мы не против, что контент загружается. На самом деле мы рады этому, однако некоторые из загрузчиков и ускорителей загрузки оказались проблематичными на текущем сайте.

Что я ищу, это то, что нужно сесть в начале моего php, который работает в значительной степени в первую очередь. Он берет отпечаток запроса страницы (ip, referrer, uri запроса, cookie, идентификатор сеанса, что угодно) и передает его ... что-то. Что-то тогда сравнивает отпечаток пальца с отпечатками пальцев в последнюю секунду или три. Затем он возвращает сообщение, основанное на некотором заранее настроенном пороге, что делать с запросом.

Некоторые пороги:

  • Пользователь запросил> х страниц в последние секунды 0, n.
  • Пользователь просил ту же страницу в < 0.n секунд.
  • Пользователь отправил идентичные данные в форму за последние n секунд.

Итак, вы видите, что я смотрю на довольно жесткие окна. Является ли обнаружение таких вещей даже выполнимыми? Смогу ли я сделать это с помощью какого-то файла или источника данных db? Независимо от того, что я использую для хранения отпечатков пальцев между загрузками страниц, вы столкнетесь с большим количеством оттока, так как большинство данных будет храниться в течение секунды или двух. Должен ли я просто иметь что-то, что анализирует журналы apache для проверки порога? Должен ли я искать какой-то внешний демон, который хранит данные в секунду или два в памяти, которые я могу вызвать из сценария? Есть ли что-то в apache, которое может справиться с этим, и мне просто нужно подержать парня-сервера, чтобы справиться с этим?

Предполагая, что это что-то, что я могу сделать в PHP или какой-то внешний демон, как реагировать на поведение вне пороговых значений? Моя кишка говорит ответы HTTP, что-то вроде 408 или 503, но моя кишка часто ошибается. Что я могу сделать, чтобы сказать клиенту немного отступить? Какая-то страница «Woah there»?

ответ

3

Если у вас нет , у вас есть, чтобы иметь программное решение, почему бы не запрограммировать ваш маршрутизатор/брандмауэр, чтобы справиться с этим? Фильтрация DOS-атак (или их эквивалента) является частью того, для чего она предназначена.

 Смежные вопросы

  • Нет связанных вопросов^_^