Hello! On Tue, Apr 23, 2019 at 04:59:38AM -0400, anatolr wrote:
> включаю debug как понять почему строку location не использует > > location: ~ "^(.*)/\<(.*)$" { > return 404; > } > > 2019/04/23 11:43:55 [debug] 2737#0: *23 test location: "/" > 2019/04/23 11:43:55 [debug] 2737#0: *23 test location: "images/" > 2019/04/23 11:43:55 [debug] 2737#0: *23 test location: ~ "^(.*)alert(.*)$" > 2019/04/23 11:43:55 [debug] 2737#0: *23 test location: ~ > "^(.*)document(.*)$" > 2019/04/23 11:43:55 [debug] 2737#0: *23 test location: ~ "\.php" > 2019/04/23 11:43:55 [debug] 2737#0: *23 using configuration "\.php" Когда речь идёт о location'ах, заданных регулярными выражениями - используется первое совпавшее. В вашем случае это "location ~ \.php", как ясно видно из debug log'а. Подробнее стоит почитать в документации: http://nginx.org/ru/docs/http/ngx_http_core_module.html#location Отдельно отмечу, что location отвечает только за проверку собственно URI запроса, без учёта аргументов. Соответственно закрыть так наиболее типичные XSS-уязвимости - в аргументах запроса - не получится, надо вместо этого использовать if'ы. И там кроме этого - вылезет отдельная проблема с необходимостью учитывать возможный URL encoding. Но вообще, как вам уже совершенно верно сказали, подобный путь решения проблем безопасности - крайне сомнителен. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru