最近這段時間的專案被查出了安全漏洞、然後做了一些安全措施的整改。整改後、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、後面重新進來請求又可以了。被坑了一波。。。
反思反思!!!!!