cookie_limit_req

Ограничивает количество поддельных куки, исходящих от вредоносных IP, контролируя скорость запросов, связанных с конкретными куки.

Синтаксисcookie_limit_req zone=name [burst=number] [nodelay | delay=number];
По умолчаниюnone
Контекстhttp, server, location, if in location
Аргументы1-3

Описание

Директива 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 может привести к перегрузке сервера, если запросы постоянно превышают лимит запросов.

← Ко всем директивам