Каков наилучший способ запретить посетителям чрезмерно запрашивать ресурсоемкие страницы? - PullRequest
2 голосов
/ 22 декабря 2010

Я новичок и пытаюсь разработать портал, похожий на Yellow-Pages, с использованием ASP.NET MVC.Мне интересно, что найдутся плохие посетители, которые чрезмерно просят страницы портала замедлить мой портал и заблокировать запрос от других законных посетителей.

Моя текущая идея - поместить слепок (блок встроенного кода) в masterстраница, чтобы проверить интервал между двумя последовательными запросами.Если интервал составляет менее 5 секунд (например), я отклоню / прекратить обработку запроса.

Мой вопрос:

  1. Как лучше всего решить эту проблему??
  2. Если моя идея выше применима для решения этой проблемы, какую функцию я должен вызвать, чтобы завершить процесс рендеринга (перед выполнением ресурсоемкой работы)?

РЕДАКТИРОВАТЬ 1:

  1. Можем ли мы установить это на сервере (настройки IIS) глобально, а не для каждого приложения?

Ответы [ 3 ]

3 голосов
/ 22 декабря 2010

Если вы обслуживаете страницы только для чтения, правильное кэширование - это ваша первая линия защиты. Вы можете ограничить количество запросов по IP, но это потребует другой формы поиска.

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

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

Сосредоточьтесь на том, чтобы сначала сделать ваш сайт быстрым.

1 голос
/ 22 декабря 2010

Я бы сделал это через кеш дырки для пончиков

1 голос
/ 22 декабря 2010

Re 1: убедитесь, что ваши страницы отображаются быстро, используйте кэш вывода.Получите достаточно мощности сервера для обслуживания посетителей.

Re: Да.это также гарантирует, что люди, которые быстро будут заблокированы.Gratulations.Имеет смысл, но вы должны быстрее (0,1 секунды или что-то в этом роде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...