cookie_limit_req
Ограничивает количество поддельных куки, исходящих от вредоносных IP, контролируя скорость запросов, связанных с конкретными куки.
Описание
Директива cookie_limit_req является частью модуля NGINX и помогает смягчить потенциальные злоупотребления вредоносными запросами, нацеленными непосредственно на куки. Когда эта директива применяется, она указывает заранее определённую зону разделяемой памяти (через cookie_limit_req_zone) и позволяет контролировать количество запросов, которые могут обрабатываться на основе информации из куки. Эта директива помогает ограничить приток запросов, задавая определённую скорость запросов и поддерживая максимальную вместимость всплеска запросов (burst), которые могут быть обработаны без задержки.
Параметр zone идентифицирует зону разделяемой памяти, которая уже была определена с такими параметрами, как скорость запросов и размер burst. Дополнительные опции позволяют точнее настроить то, как NGINX обрабатывает избыточные запросы: параметр burst определяет максимальное число запросов, которое может превышать заданную скорость до начала задержек или отбрасывания, а настройка nodelay позволяет немедленную обработку запросов до этого лимита burst вместо их постановки в очередь. Такой контроль критически важен для поддержания производительности сервера и обеспечения безопасности против злоупотреблений через чрезмерные запросы, инициируемые с одного и того же IP или с той же куки.
Поведение задержанных или избыточных запросов также можно тонко настроить с помощью директив cookie_limit_req_log_level и cookie_limit_req_status, которые задают уровень логирования для таких событий и код состояния, возвращаемый для отклонённых запросов, соответственно. В целом директива cookie_limit_req необходима для эффективного применения лимитов скорости, связанных с куки, способствуя как управлению производительностью, так и защите от определённых типов атак.
Пример конфига
cookie_limit_req zone=two burst=30 nodelay;
Убедитесь, что зона разделяемой памяти определена перед использованием этой директивы.
Высокий лимит всплеска может привести к проблемам с производительностью, если им не управлять должным образом.
Использование nodelay может привести к перегрузке сервера, если запросы постоянно превышают лимит запросов.