nginx对访问路径进行限制【部分接口可以内外网访问、剩余接口只可以内网访问】
前言
最近这段时间的项目被查出了安全漏洞、然后做了一些安全措施的整改。整改后、BOSS又提了个很有意思的思路。
开干开干
由于项目引进了gateway网关、一开始的时候。我陷入了误区、一股脑想着在gateway的location里面做判断。
看图
最近这段时间的项目被查出了安全漏洞、然后做了一些安全措施的整改。整改后、BOSS又提了个很有意思的思路。
- 涉及到小程序端的请求接口、内外网都可以访问。
- 涉及到后台管理的请求接口、只允许内网访问。
开干开干
由于项目引进了gateway网关、一开始的时候。我陷入了误区、一股脑想着在gateway的location里面做判断。
看图
然后加了各种if限制。发现还是会走后面的判断。
location /******-gateway { # 其他配置 ... # 定义允许内外网访问的路径模式 if ($request_uri ~* "^/sys/(wx)/.*") { proxy_pass http://127.0.0.1:端口; } # 默认情况下,只允许特定内网IP访问 if ($remote_addr != "指定IP") { return 403; } # 默认代理 proxy_pass http://127.0.0.1:端口; }
最后拆分成了两个 location
# 外网可访问的特定路径 location ~* ^/**-gateway/sys/(wx)/ { proxy_pass http://127.0.0.1:端口; } # 网关-gateway location /****-gateway { # 默认情况下,其余接口只能通过内网访问 if ($remote_addr != "指定IP") { return 403; } # 如果通过了上面的检查,代理请求到后端服务 proxy_pass http://127.0.0.1:端口; }
1.花了几个小时、一直在问GPT。。。
2.手机有缓存、、、一直提示403、后面重新进来请求又可以了。被坑了一波。。。
反思反思!!!!!