Cookie Poisoning
Содержание |
Обзор
Модуль Cookie Poisoning сравнивает заголовки Set-Cookies и значения cookie в ответе клиента. Если cookie изменены на стороне клиента, выполняется действие в соответствии с настройками.
Этот модуль зависит от Session module, поэтому вы должны включить Session module перед использованием директив модуля Cookie Poisoning.
Директивы
cookie_poisoning
| Синтаксис | cookie_poisoning on | off; |
| По умолчанию | off |
| Контекст | Location |
Включить защиту от изменения cookie в location
Например:
server {
session on;
...
location / {
cookie_poisoning on;
...
}
}
cookie_poisoning_action
| Синтаксис | cookie_poisoning_action block | pass | remove | blacklist,num; |
| По умолчанию | block |
| Контекст | Location |
Директива определяет действия при обнаружении изменения cookie на стороне клиента.
Возможные действия:
- block, блокировать запрос и отбросить его.
- pass, разрешить обработку запроса в SEnginx.
- remove, удалить изменененные cookie в запросе и затем продолжить обработку запроса.
- blacklist, добавить эту сессию в черный список когда количество заблокированных запросов превысит заданное значение.
Пример:
cookie_poisoning_action block; # Блокировать cookie_poisoning_action remove; # Удалить значение cookie cookie_poisoning_action blacklist,5; # После 5 блокированных запросов добавить сессию в черный список
cookie_poisoning_log
| Синтаксис | cookie_poisoning_log on | off; |
| По умолчанию | off |
| Контекст | Location |
Разрешить или запретить ведение журнала. Если разрешено, то обнаруженные атаки будут записываться в error.log
Пример:
cookie_poisoning_log on;
cookie_poisoning_whitelist
| Синтаксис | cookie_poisoning_whitelist ua_var_name=UA whitlist ip_var_name=IP whitelist ip_var_value=value; |
| По умолчанию | |
| Контекст | Location |
Эта директива определяет использование белого списка IP-адресов и белого списка на основе User Agent. Белый список IP-адресов задается с помощью geo модуля nginx.
Пример:
# Определить белый список IP-адресов
geo $ip_wl {
ranges;
default 0;
127.0.0.1-127.0.0.1 1;
3.0.0.1-3.2.1.254 1;
}
# Определить белый список на основе User Agent
whitelist_ua $ua_wl {
"autotest" ".*\.test\.com";
}
server {
location / {
cookie_poisoning_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
...
}
}
Статистика
Используйте модуль Статистика трафика и атак SEnginx для получения данных об атаках с изменением cookie.