)
應用代碼看到一個HTTPS地址就能認為它屬于批準的網(wǎng)站嗎域名解析、重定向和代理鏈都可能改變最終目的地。10月23日OpenAI的隔離說明再次把出站路徑放到了顯眼的位置。應用校驗只是第一道門URL中有scheme、hostname、port、userinfo和路徑。用startswith比較字符串會把域名外觀與真實主機混在一起。應先解析再與明確的目標集合比較拒絕額外憑據(jù)和不需要的端口。即便URL結構合法也還沒有檢查DNS最終解析地址。重定向后的新地址必須重新經(jīng)過同一策略連接應由受控代理執(zhí)行并把應用判斷與實際連接目的地關聯(lián)。否則允許列表只能約束模型寫下的字符串約束不了網(wǎng)絡。固定內網(wǎng)域名同樣需要訪問路徑和方法限制。允許讀取知識庫不等于允許調用它的管理端點。這個差異應由服務身份和后端接口落實。圖里的私網(wǎng)分支由網(wǎng)絡側策略攔住不能靠一段URL解析代碼代替。離線校驗URL結構以下是可離線運行的最小示例使用Python標準庫。輸入均為教學構造不連接業(yè)務系統(tǒng)。from urllib.parse import urlsplit def allowed(raw): try: u urlsplit(raw) port u.port except ValueError: return False return ( u.scheme https and u.hostname docs.example.invalid and u.username is None and u.password is None and port in (None, 443) and not u.fragment ) assert allowed(https://docs.example.invalid/guide) assert not allowed(https://docs.example.invalid.evil.invalid/) assert not allowed(https://docs.example.invalidevil.invalid/) assert not allowed(https://docs.example.invalid:8443/) assert not allowed(http://docs.example.invalid/) print(5 URL structure cases passed; no DNS or requests).invalid域名專用于本例腳本不做DNS查詢。真實實現(xiàn)還需地址范圍校驗、DNS重綁定防護、重定向處理和代理拒絕記錄。不要把這五個斷言算成SSRF防護驗證。測試必須經(jīng)過真實出口在授權的測試網(wǎng)絡里分別檢查直接IP、解析變化、跳轉和代理錯誤記錄最終IP、TLS主機名和規(guī)則版本。內部安全服務故障時應拒絕請求而不是悄悄回退到宿主默認網(wǎng)絡。本文沒有啟動Cilium、Kubernetes或真實代理也沒有性能數(shù)據(jù)。域名允許列表是聲明的一部分網(wǎng)絡可達性仍需獨立驗證。參考資料OpenAI containmentMCP security practices