User-Agent Whitelist with DNS Reverse Resolve
Содержание |
Обзор
Модуль Whitelist проверяет поле User Agent запроса и использует обратный поиск DNS (reverse DNS lookup). Запросы, попадающие под условия белого списка, пропускаются при обработке в соответствующих модулях безопасности:
Обратный поиск DNS заключается в определении доменного имени клиента по IP-адресу.
Если доменное имя соответствует заданному шаблону, белый список устанавливает переменную в значение true. Обратный поиск DNS предназначен для распознавания ботов, использующих User Agent известных роботов.
Можно задать несколько белых списков для использования в разных модулях.
Эта функция появилась в версии 1.5.11.
Директивы
whitelist_ua
| Синтаксис | whitelist_ua $variable { ... } |
| По умолчанию | |
| Контекст | http |
Создать белый список на основе User Agent
Пример:
whitelist_ua $ua_wl {
"baiduspider";
"googlebot";
}
Включить обратный поиск DNS:
resolver 10.5.1.204 ipv6=off;
resolver_timeout 5s;
whitelist_ua $ua_wl_dns {
"baiduspider" ".*\.baidu\.com";
"googlebot" ".*\.google\.com";
}
Игнорировать регистр:
resolver 10.5.1.204 ipv6=off;
resolver_timeout 5s;
whitelist_ua $ua_wl_dns {
caseless;
"baiduspider" ".*\.baidu\.com";
"googlebot" ".*\.google\.com";
}
Переменные, определенные в модуле белого списка, могут быть использованы в других модулях безопасности, а также в операторах 'if' в блоках location (но не в операторах 'if' в блоках server)
Пример:
# В модуле Cookie Poisoning:
cookie_poisoning_whitelist ua_var_name=ua_wl_dns;
# В операторе if:
if ($ua_wl_dns) {
# сделать что-то доброе
}
# Иначе
# Сделать дополнительные проверки безопасности
Смотрите документацию других модулeй безопасности по использованию белого списка на основе User Agent.