繁體中文

開發者工具 · UUID 產生器

在沒有伺服器的情況下產生 UUID:為什麼網路面板保持為空

· 為什麼它很重要

uuid 密碼學 瀏覽器 API

瀏覽器 DevTools 網路面板在產生 UUID 時不顯示任何要求
原始 ToolAcre 向量圖

一個呼叫其伺服器的線上 UUID 產生器正在向您發送您從未需要共享的元資料。這篇文章解釋了為什麼本地產生本身是完整的,以及如何驗證工具是否確實是本地的。

為什麼 ID 產生器需要伺服器 - 以及為什麼對於隨機 UUID,它不需要

當 UUID 產生完全是本機時,為什麼 UUID 產生器需要伺服器? UUID 在數學上獨立於產生器外部的任何狀態。版本 4 UUID 是 122 位元的加密隨機資料,其中 4 位元用於版本,2 位元用於變體。用戶端可以存取瀏覽器中的加密安全隨機來源 Web Crypto、伺服器中的本機加密庫,因此它可以在本機上產生整個 UUID ,而無需諮詢任何外部服務。然而,許多線上 UUID 產生器會發出 HTTP 請求,發送不需要離開客戶端的資料。這是不必要的,並可能會損害隱私。

託管產生器可以保留什麼 - 請求日誌、地址和時間戳,被描述為可能性而不是指控

將您的請求傳送到伺服器的產生器可以保留與您的 UUID 產生模式關聯的請求日誌、時間戳記和 IP 位址。即使它本身不儲存 UUID,它也知道您何時以及從何處產生 ID。對於從事機密專案的開發人員來說,ID 產生可能會洩露有關時間和開發活動的資訊。出於測試目的,格式正確但仍發送到伺服器的 UUID 可能受到損害:伺服器現在知道您正在測試哪些操作或系統。此元資料對於聚合器很有價值,可用於分析或分析。

為什麼標識符本身是敏感的 - 成為記錄密鑰的 UUID 是系統結構的一小部分

對不必要的伺服器參與的回應是,本地產生比基於伺服器的產生更簡單、更快且更私密。您的瀏覽器已經內建了 Web Crypto,或者您的伺服器可以存取作業系統熵來源。結果可以立即複製、下載或使用,無需等待網路往返。 UUID 永遠不會透過網路傳輸。產生器永遠不會知道你執行了它。本地產生顯然是 UUID 的預設;伺服器的參與是一個不必要的中介,它會帶來風險而不提供價值。客戶端擁有產生有效 RFC 9562 UUID 所需的一切。

驗證工具是本地的 - 開啟瀏覽器的網路面板,產生並監視要求

呼叫其伺服器的託管產生器可以出於各種既定原因保留日誌:分析以了解使用模式、濫用預防以檢測攻擊、調試以解決問題,或出於未向用戶說明的原因:向營銷聚合器銷售資料、行為分析以構建用戶檔案、與其他服務集成或跨服務跟踪。請求本身攜帶元資料:您的 IP 位址顯示位置和來源,使用者代理程式標頭識別您的瀏覽器版本,有時還識別作業系統,時間戳顯示您何時造訪該工具,cookie 或追蹤識別碼可能與存取相關。如果產生 UUID,則會記錄該請求。如果您稍後在系統中使用該 UUID,則將日誌與您的系統相關聯可能會洩漏有關您正在建置的內容的資訊。

嚴格的內容安全策略增加了什麼 - 沒有第三方腳本、字體或標籤意味著沒有通往第三方的隱藏通道

ToolAcre 產生器使用嚴格的內容安全策略來防止外部請求、第三方腳本和遠端字體。您可以在瀏覽器的回應標頭中或透過讀取頁面的 CSP 元標記來驗證這一點。沒有第三方分析、廣告標籤、追蹤像素或外部資源載入。 UUID 產生程式碼是從與頁面相同的來源載入的,因此它與工具的其餘部分處於相同的審核範圍內。此實作僅使用 Web Crypto API,不進行任何網路呼叫。該政策是可驗證的,而不僅僅是聲稱的。

工作範例 — 在 DevTools 中逐步檢查 ToolAcre 產生器,以及空白面板可以做什麼和不能做什麼

驗證非常簡單,只需不到一分鐘的時間。開啟瀏覽器的開發人員工具,切換到網頁面板,清除任何現有要求,產生 UUID 並觀察面板。如果頁面最初尚未完全加載,則除了潛在的靜態資源之外,不應出現任何新請求。產生的 UUID 出現在頁面的輸出區域中,而不是出現在網路回應中。如果您看到對外部網域、廣告網路或分析服務的請求,則產生器不是本地的。如果您根本沒有看到任何請求,則說明產生是在瀏覽器本機執行的 JavaScript 中發生的。

這不包括您自己的應用程式的遙測,它超出了任何工具的控制範圍

一個有效的範例示範了現代瀏覽器中的驗證過程。按 F12 或右鍵並選擇“Inspect”以開啟 DevTools。按一下網路標籤。重新載入ToolAcre產生器頁面並等待其完成載入;您將看到對頁面 HTML 本身、CSS 樣式表、JavaScript 程式碼和任何嵌入圖片的請求。頁面穩定後,在「網路」面板中尋找「清除」按鈕,然後按一下它以清空請求清單。現在透過點選按鈕或按 Enter 鍵產生 UUID。如果實施是本地的,則面板中不會出現新請求。如果是伺服器端,您將看到對諸如 /api/generate-uuid 或 https://uuid.example.com/v1/random. 之類的端點的請求

重點:本地是可驗證的 - ToolAcre 產生器完全在瀏覽器中執行,在訪問之間不存儲任何內容,並可以在網絡面板中檢查

ToolAcre 工具旨在透過架構設計來通過此測試。 Web Crypto API 為此用例提供了 crypto.randomUUID,如果在較舊的瀏覽器或不安全的上下文中不可用,則 crypto.getRandomValues 提供原始隨機位元組,該工具可以將其格式化為 UUID。此實作足夠短以供審核:產生器呼叫這些 Web Crypto 方法之一,將結果格式化為 UUID 字串並顯示它。任何步驟都不涉及伺服器。這種架構也意味著該工具可以離線工作;頁面載入後,您可以斷開網路並繼續產生 UUID。瀏覽器的本地加密在沒有網路存取的情況下仍然可以完美運作。