Nginx处理带有分号“;“的路径
一、背景
安全渗透测试发现springboot 未授权访问的actuator和Swagger-ui 信息泄露的漏洞,需要规避。解决方案中较简单的就是通过Nginx将相关的接口转发到403页面。
在配置的过程当中,遇到了带有…;的路径:http://{ip:port}/{path}/…;/actuator/,此类路径由于带有分号,不好处理。
二、现象
对于没有分号的路径:
location ^~ /path/actutor/ {return 403;}
即可完成页面无法访问的配置;
而对于带有分号的路径,在执行nginx -t 时却报错:
nginx: [emerg] directive "location" has no opening "{" in ……
三、解决办法
将URI放入双引号中即可(if语句是放在server模块中,作用同location):
if ($request_uri ~* "/path/\.\.;/actuator/") {return 403;}
好记性不如烂笔头。
与君共勉。