開發者工具 · Base64 編碼器和解碼器
線上解碼 Base64 令牌:為什麼該工具應在瀏覽器中執行
· 為什麼它很重要
base64 隱私
許多線上解碼器將您的輸入傳送到伺服器,這表示您貼上的每個令牌、憑證和有效負載都會被公開。這篇文章解釋了什麼洩漏、如何驗證工具是否保持在本地以及為什麼 ToolAcre 的解碼器以這種方式工作。
透過陌生人伺服器的 API 金鑰 — 將令牌貼到表單發布解碼器中實際傳輸的內容
工程師需要檢查 Base64 編碼的 JWT 或 API 回應來偵錯系統。他們打開自己喜歡的搜尋引擎,找到線上解碼器工具,並將令牌貼到其輸入欄位中。工具立即顯示解碼後的有效負載,工程師即可繼續工作。他們沒有看到傳輸到伺服器的內容:整個令牌及其包含的每個憑證、宣告和個人詳細資訊。該請求被記錄下來,儲存在伺服器存取日誌中,可能由代理程式緩存,並對監控網路流量的任何人都絕對可見。
隨意選擇使用線上解碼器已向他們無法控制的服務洩露了生產令牌。這篇文章解釋了當您貼上到遠端解碼器時會發生什麼洩漏,如何驗證工具是否保留在本地,以及為什麼 ToolAcre 解碼器在瀏覽器中工作,以便您的秘密永遠不會傳輸到伺服器。 JWT (JSON Web 令牌) 包含由點分隔的編碼宣告。解碼後,中間部分通常會顯示使用者 ID、電子郵件地址、角色、問題時間,有時會顯示 API 金鑰或會話識別碼。
Base64 有效負載通常包含的內容 — 憑證、JWT 宣告、會話資料和個人資訊
API 回應中的 Base64 負載可能包含檔案上傳、簽署或部分加密金鑰。所有這些都是敏感資料,不應離開您的裝置。然而,當開發人員從終端或 HTTP 回應複製此類值並將其貼上到線上解碼器以快速讀取內容時,該值會直接發送到遠端伺服器。如果解碼器處理許多用戶,一台伺服器可能會累積數千個令牌和有效負載的資料庫。
即使伺服器在處理後刪除它們,它們也會被記錄下來,在傳輸過程中可見,並可能被其他服務攔截或儲存。伺服器往返解碼器和分頁內解碼器之間的差異是絕對的。網頁上的表單需要 POST 或 GET 請求來解碼您的輸入,這表示您的資料將傳輸到遠端伺服器。即使伺服器是誠實的並立即刪除資料,流量也會暴露。代理程式、負載平衡器、監控系統和 TLS 終止點都會看到該請求。
兩種架構:伺服器往返與分頁內解碼 — 位元組在每個架構中的位置以及誰可以記錄它們
如果伺服器不誠實或受到威脅,您的令牌現在將儲存在屬於其他人的資料庫中。分頁內解碼器意味著根本不發送任何請求。您輸入的文字、貼上的 Base64 字串以及解碼結果都保留在您裝置上的瀏覽器中。不聯絡伺服器,沒有第三方看到資料,瀏覽器自己的 JavaScript 進行轉換。自行檢查需要一分鐘,並只需要瀏覽器內建的網路面板。
在新分頁中開啟 Base64 編碼器和解碼器,開啟開發人員控制台(在大多數瀏覽器中為 F12),然後按一下「網路」標籤。確保清單為空或按一下清除按鈕。現在將範例令牌或 Base64 字串貼到解碼器中,然後按一下「解碼」。仔細觀察網路面板。如果它完全為空並沒有出現新請求,則解碼發生在瀏覽器本地。如果出現對伺服器的請求,則該請求攜帶您的資料。
如何在網路面板中檢查自己 - 在貼上時觀察請求,以及安靜的面板證明了什麼
或者,開啟頁面來源 HTML 或 JavaScript(右鍵單擊,查看頁面來源)並蒐索表單發布或取得的位置。如果它傳送到的遠端端點與載入頁面的網域不同,則您的輸入將離開裝置。快速網路面板檢查可證明解碼器是本地還是遠端。當您解碼某些內容時,嚴格的本地工具不會發出任何請求。沒有使用您的輸入作為參數的 GET 請求,沒有使用表單資料的 POST,也沒有對 API 的 fetch 呼叫。
操作期間面板保持完全空狀態。這並不難偽造;一個聰明的工具可以在本地解碼並將您的資料發送到追蹤伺服器。這就是為什麼檢查內容安全策略也很重要。嚴格的內容安全策略(在「網路」面板的回應標頭標籤中可見)排除了多種類型的外部呼叫。禁止外部腳本、字體和圖片並不允許將表單發佈到任意端點的策略限制了惡意或受損頁面的行為。
為什麼沒有分析和第三方腳本也很重要 - 嚴格的內容安全策略如何排除靜默洩漏
CSP 並不是絕對的保證,但與網路檢查相結合,它是該工具正在執行其聲稱的功能的有力證據。若要進行完整驗證,請解碼範例令牌,同時觀察三件事:網頁面板、外部請求的頁面來源和 CSP 標頭。
不發出任何請求、不包含第三方 JavaScript 並宣告禁止進一步加載的嚴格 CSP 的頁面比允許一切的頁面更難受到攻擊。 Base64 編碼器和解碼器使用此方法:操作在裝置上的 Web Worker 中執行,該網站具有嚴格的 CSP,禁止外部程式碼,且頁面在解碼時不會發出網路要求。
工作範例:在網路面板打開的情況下解碼範例令牌 - 沒有請求,沒有存儲,之後沒有任何可刪除的內容
您可以在網頁面板、瀏覽器控制台和頁面原始碼中自行審核,然後相信您自己的觀察而不是工具隱私承諾。更廣泛的背景很重要,因為並非所有令牌洩漏都來自惡意解碼器。如果擴充功能遭到破壞或惡意,則監視所有流量和日誌請求的瀏覽器擴充功能可以看到您貼上到誠實本地工具中的內容。為方便起見,儲存每個複製和貼上操作的剪貼簿管理器可以保留您的令牌。
肩窺,即在您工作時有人觀看您的螢幕,直接捕捉解碼值。這些超出了任何網路工具的控制範圍。解碼器本身無法防止擴展級存取或物理觀察。但它可以而且必須消除伺服器往返暴露。如果您要將真實的生產令牌貼到任何內容中,則該工具必須在本地執行。使用本地解碼器還是遠端解碼器的決定是一種隨著時間的推移而複雜化的安全選擇。使用遠端解碼器一次意味著一個令牌被暴露並一台伺服器擁有資料。
這不包括瀏覽器擴充功能、剪貼簿管理器和肩衝浪,這些都超出了任何網路工具的控制範圍
定期使用遠端解碼器意味著數百個令牌流經您無法控制的伺服器。習慣將敏感值貼到線上工具中的開發人員逐漸訓練自己這是可以接受的,從而使暴露正常化。切換到本地解碼器可以完全消除工具等級的暴露。它不能解決其他問題,例如出現在日誌或聊天歷史記錄中的令牌,但它消除了一種可控的洩漏來源。驗證工具是否處於本地狀態是檢查可觀察結果的問題,而不是信任宣告的問題。
網路面板流量、頁面原始碼、HTTP 標頭和瀏覽器控制台錯誤都提供了證據。當一個工具聲稱是本地的,但你沒有辦法驗證它時,懷疑是有道理的。 ToolAcre Base64 編碼器和解碼器完全在您的瀏覽器中執行,解碼時不會發出任何請求。您可以開啟「網路」分頁,貼上真實令牌,對其進行解碼,然後看不到傳出請求。解碼後的值僅顯示在您的瀏覽器中。它不會儲存在任何伺服器上,不會發送到分析,不會記錄在任何地方,但如果您再次訪問並頁面被緩存,則會記錄在瀏覽器快取中。
重點:在資料已存在的位置進行解碼 — Base64 編碼器和解碼器如何完全在瀏覽器中執行,無需帳戶且無需上傳
在本機解碼,您的令牌仍然屬於您。實用的建議很簡單。當您需要解碼 Base64 令牌或 JWT 時,請使用瀏覽器中本機執行的工具。透過打開“網路”面板並在解碼時進行檢查來驗證它沒有發出請求。如果您發現有發佈到伺服器的線上工具,請停止使用它。切勿將生產令牌、API 金鑰或任何敏感資料貼到資料傳輸到遠端伺服器的工具中。儲存短期代幣並定期輪換長期代幣,以最大程度地減少暴露視窗。
對於 ToolAcre Base64 編碼器和解碼器,您貼上的令牌和憑證保留在分頁中,您可以透過快速查看網路面板來自行確認。