#nginx #url-rewriting #nginx-config #nginx-location
Вопрос:
У меня есть это в моем файле nginx conf
location ~ ^/admin/.*.php$ {
include snippets/admin.conf;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
Это содержимое фрагментов/admin.conf
allow my IP/32;
deny all;
Я могу получить доступ к URL /admin с помощью своего IP-адреса, и когда я меняю свой IP-адрес, он работает так, как ожидалось, он возвращает 403 Запрещенных.
Но я вижу это в своем access.log
198.46.190.174 - - [06/Oct/2021:10:41:47 0000] "POST /admin/ HTTP/1.1" 200 10002 "-"
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
109.120.213.70 - - [06/Oct/2021:10:41:47 0000] "POST /admin/ HTTP/1.1" 200 10008 "-"
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
Кто-то пытается взломать сайт. Запросы поступают с тысяч разных IP-адресов, и nginx возвращает код состояния 200
Я даже переименовал каталог администратора в случайные символы, и nginx по-прежнему возвращает код состояния 200, как вы видите в access.log
Почему это так? Пожалуйста, кто-нибудь, помогите
Комментарии:
1. Блоки расположения регулярных выражений оцениваются по порядку, поэтому вам нужно просмотреть весь
server
блок, чтобы понять, какlocation ~ ^/admin/.*.php$
он оценивается. Кроме того,POST /admin/
изначально не обрабатываетсяlocation ~ ^/admin/.*.php$
, поэтому, опять же, вам нужно просмотреть весьserver
блок, чтобы понять, как оценивается этот URI.