nginx, не блокирующий агенты пользователя

Приемлемо использовать тот же закрытый ключ на обеих машинах. Обратите внимание что при использовании звона на машине Windows, что Вы, возможно, должны преобразовать его из формата, используемого OpenSSH.

1
задан 20 February 2013 в 02:01
3 ответа

nginx применяет только один блок местоположения на каждом уровне конфигурации. Все файлы с ошибкой 404 - это файлы .php , которые попадают в блок местоположения \. Php , и поэтому не используют блок местоположения / , который содержит вашего пользователя агентский блок. Чтобы исправить это, переместите блок пользовательского агента за пределы блока местоположения на корневой уровень, чтобы он применялся ко всем запросам.

if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") {
    return 403;
}

location / {
    ...
}

location \.php {
    ...
}

Изменить: Вы можете проверить это с помощью чего-то вроде curl , что позволяет вам установить произвольные заголовки:

% curl -I localhost/sf645/blah
HTTP/1.1 404 Not Found
% curl -I -H 'User-agent: ZmEu' localhost/sf645/blah
HTTP/1.1 403 Forbidden
% curl -I -H 'User-agent: morfeus fucking scanner' localhost/sf645/blah
HTTP/1.1 403 Forbidden
3
ответ дан 3 December 2019 в 18:59

Попробуйте просто использовать шаблон (morfeus) . Этот символ вертикальной черты, вероятно, мешает сопоставлению с образцом регулярного выражения.

0
ответ дан 3 December 2019 в 18:59

попробуйте это

if ($http_user_agent ~* (morfeus|ZmEu) ) {
   return 403;
}
0
ответ дан 3 December 2019 в 18:59

Теги

Похожие вопросы