HowTo: Nginx блокиране на User Agent
Публикувана от admin на May 29 2012 16:11:14
HowTo: Nginx блокиране на User Agent

Въпрос: Как да блокирам http или софтуерен user agent с Nginx уеб сървър под Linux / Unix?

Отговор: Можете да блокирате всеки http user agent с GET / POST заявки, опитващи се да се възползват от уязвимост в сайта ви. За целта редактирайте /usr/local/nginx/conf/nginx.conf:

# pico /usr/local/nginx/conf/nginx.conf

Нека да блокираме wget:

## Block http user agent - wget ##
if ($http_user_agent ~* (Wget) ) {
return 403;
}

## Block Software download user agents ##
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}

Запазете и затворете файла. Рестартирайте сървъра с командата:

# service nginx reload

или

# /usr/local/nginx/sbin/nginx -s reload

Как да блокираме множество http user agent-и?
Използвайте следния синтаксис:

if ($http_user_agent ~ (agent1|agent2|Foo|Wget|Catall Spider|AcoiRobot) ) {
return 403;
}


Игнорирайте регистъра на буквите: ~* vs ~
~* прави командата нечувствителна към регистъра, обратното на ~:

### case sensitive http user agent blocking ###
if ($http_user_agent ~ (Catall Spider|AcoiRobot) ) {
return 403;
}
### case insensitive http user agent blocking ###
if ($http_user_agent ~* (foo|bar) ) {
return 403;
}