最近这段时间的项目被查出了安全漏洞、然后做了一些安全措施的整改。整改后、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:端口;}# 网关-gatewaylocation /****-gateway {# 默认情况下,其余接口只能通过内网访问if ($remote_addr != "指定IP") {return 403;}# 如果通过了上面的检查,代理请求到后端服务proxy_pass http://127.0.0.1:端口;}
1.花了几个小时、一直在问GPT。。。
2.手机有缓存、、、一直提示403、后面重新进来请求又可以了。被坑了一波。。。
反思反思!!!!!