繁體中文

開發者資料工具包 — 問題

該工具包如何處理您的數據,哪些實用程式是準確的,以及每個實用程式故意停止的位置。

簡短版本

這裡的每個實用程式都在您的瀏覽器標籤中運行。 ToolAcre 應用程式伺服器不會上傳或儲存您貼上的任何內容。網站範圍的分析僅在配置的規範生產主機上運行,並在隱私權政策中揭露;貼上的值被排除在 ToolAcre 自己的分析事件之外。

以下問題決定您是否可以信任特定結果。如果實用程式是準確的,它就會這樣說;在它接近或拒絕的地方,它也這麼說。

你貼的內容會發生什麼

  • 每個轉換、哈希、解碼和差異都在您的瀏覽器標籤中運行。不會在伺服器上傳、記錄或儲存任何輸入,因為頁面載入後就不再涉及伺服器。
  • 雜湊值來自瀏覽器自己的 Web Crypto 實現,UUID 來自其加密安全隨機產生器。兩者都不涉及網絡調用。
  • 您鍵入的任何內容都不會寫入本機儲存或 cookie。重新載入頁面會丟棄它;關閉選項卡將丟棄它。
  • 站點範圍的分析僅在配置的規範生產主機上運行,並在隱私權政策中披露;本地和預覽主機拒絕它。貼上的值、令牌、URL 和文件內容不包括在 ToolAcre 自己的分析事件中。目前配置中停用廣告。
  • 也就是說:JWT 或 API 金鑰是即時憑證。安全的習慣是永遠不要將其粘貼到不是您編寫的網頁中,無論其聲明多麼可信 - 包括這個。

問題

我貼的東西上傳了嗎?

沒有 ToolAcre 上傳收到它。每次轉換、雜湊、解碼和差異都發生在您的瀏覽器中。網站範圍的分析僅限於配置的規範生產主機並在隱私權政策中揭露;貼上的值、令牌、URL 和文件內容不包括在 ToolAcre 自己的分析事件中。

兩次訪問之間是否儲存了任何內容?

不會。該工具包不會寫入任何內容到 localStorage、sessionStorage、IndexedDB 或 cookies。重新載入頁面會清除您輸入的所有內容;關閉選項卡的效果相同。沒有帳戶系統,因此無需註冊,也無需刪除。

這裡的base64可以處理表情符號和非英文文字嗎?

是的,完全正確。文本在編碼之前被轉換為 UTF-8 bytes 並使用嚴格的解碼器解碼回來,因此表情符號、CJK、阿拉伯語、組合標記和 ZWJ 序列都是逐字節往返的。這是瀏覽器內建 btoa() 出錯的具體問題 - 它會拋出一些字元並默默地為其他字元產生錯誤的位元組。

JSON驗證器如何找到錯誤位置?

使用自己的掃描儀,而不是讀取引擎的錯誤訊息。瀏覽器 JSON 錯誤文字是特定於引擎的,目前的 V8 完全忽略了某些故障的位置。掃描器掃描文件並報告第一個不是有效 JSON 的偏移量,並附上為人類編寫的原因(尾隨逗號、單引號字串、未終止的字串)以及有問題的行和插入符號。

支援哪些 YAML 功能?

標準 YAML 1.2 結構,使用受限模式讀取,只能產生 JSON 形狀的資料:字串、數字、布林值、null、序列和映射。建構任意物件的標籤將被拒絕。您可以在 JSON 模式(最嚴格)和核心模式(也將 ~ 和空值解析為 null、十六進位整數和 .inf / .nan)之間進行選擇。

為什麼我的 YAML 檔案失敗並顯示“未知標籤”?

因為它使用自訂或特定於語言的標籤,例如 !!js/function、!!python/object/apply、!!binary 或 !!timestamp。配置為建構這些的載入器是一個任意物件建構函數,在多種語言中它是一個遠端程式碼執行錯誤類別。該工具在設計上拒絕它們,而不是例外。

哈希值正確嗎?

這些雜湊由瀏覽器內建的 Web Crypto 實作計算,測試套件會與公開測試向量核對:字串 "abc" 的 SHA-256 是 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad;SHA-1、SHA-384 和 SHA-512 以及空字串的摘要也一併檢查。

為什麼 SHA-1 被標記為損壞?

因為它是。 2017 (SHAttered) 中發布了一個實際的衝突,而選擇前綴衝突(破壞簽章和憑證的變體)在 2020 中變得可以承受。它包含在內,因此您可以重現現有的 SHA-1 值,例如 git 物件 ID 和舊版 API 簽名,這與依賴它是不同的。

UUID 從哪裡來?

來自 crypto.randomUUID() 或 crypto.getRandomValues(),其中 randomUUID 不可用。兩者都是瀏覽器的加密安全產生器。 Math.random() 從未被使用:它的內部狀態可以從短期輸出中恢復,這使得從它構建的任何東西都是可預測的。如果不存在安全來源,該工具將拒絕生成而不是悄悄降級。

JWT 解碼器是否驗證簽名?

不會。它會解碼標頭和有效負載並向您顯示它們所聲明的內容。它不檢查簽名,因此它顯示的任何內容都無法證明令牌是真實的、未被更改的或由其指定的任何人頒發的。驗證需要發行者的金鑰和固定演算法,它們屬於信任令牌的系統,而不是網頁。

我可以貼上真實的訪問令牌嗎?

你可以,但你不應該——在這裡或其他任何地方。活動代幣是一種憑證:無論誰持有它,都可以充當您的角色,直到它過期。該頁面在本地解碼並且不發送任何內容,但這是您無法在任何網站上一眼就驗證的聲明,因此安全習慣是過期或測試令牌。如果您已經將其貼到某處,請旋轉它。

文字差異如何運作?

它計算最長公共子序列編輯腳本,該腳本給出最少的添加和刪除集,而不是簡單的逐行比較。相同的前導行和尾隨行首先被修剪,因此比較兩個在一處不同的大檔案速度很快。

為什麼 diff 拒絕非常大的輸入?

LCS 演算法所需的時間和記憶體與兩個長度的乘積成正比。超過數千個不同的行成為瀏覽器選項卡不應嘗試的分配,因此該工具明確拒絕並建議比較較小的區域。共享大部分內容的檔案會先被修剪,並且無論總大小如何,都可以保持快速。

時間戳單位檢測可靠嗎?

這是一種記錄在案的啟發式方法,而且從來都不是沉默的。任何等於或大於 10^11 的值都被視為毫秒,因為 10^11 秒是 5138 年,而 10^11 毫秒是 1973 年。實際使用的單位始終與結果一起顯示,您可以覆蓋它。

該工具包可以離線使用嗎?

一旦頁面加載完畢,是的——它所做的一切都不需要網路。沒有 Service Worker,因此初始負載仍然需要連接。

它可以在手機上使用嗎?

是的。佈局從 320 CSS 像素向上工作,表單文字為 16px,因此移動 Safari 不會縮放焦點,且控制項滿足 44 像素觸碰目標最小值。編輯器和輸出在各自的框中滾動,因此一長行縮小的 JSON 永遠不會使頁面變寬。

HTML 編輯器的清理程式可以安全地用於不受信任的輸入嗎?

不,專家組也是這麼說的。它是編輯器自己的輸出的白名單:固定列表之外的元素和屬性將被刪除,事件處理程序無法生存,因為除非列出,否則沒有屬性可以生存,並且僅保留 http、https、mailto、tel、ftp 和相關連結。這使得該編輯器發出的內容可以安全地貼上到您控制的頁面中。它不是通用的 XSS 過濾器——它是一個字串標記器,而不是 HTML5 解析器,因此原則上瀏覽器可以以不同的方式解析惡意負載。預覽是一個沒有允許腳本的沙盒 iframe,因此無論如何都無法執行任何內容。

為什麼 chmod 計算器有時會顯示大寫的 S 和 T?

因為特殊位已設置,而匹配的執行位未設置。 4755是rwsr-xr-x,一個可以運行的 setuid程式;4644 是 rwSr--r--,一個沒有人可以執行的 setuid 文件,這幾乎總是一個錯誤。大寫字母是系統告訴您該位元沒有任何可操作的內容,而顯示小寫 s 的計算器將隱藏您需要查看的一件事。

docker 轉換器是否執行過我貼上的命令?

不會。它使用可識別引號的分詞器分割字串並讀取各個片段。程式碼庫中的任何位置都沒有 eval、shell 和子進程。反引號、$(...) 和分號保留原義字元。它無法轉換的任何標誌都會在可見警告中命名,而不是被刪除,因為默默地執行少於其來自的命令的撰寫文件是該工具可能產生的最糟糕的結果。

為什麼 cron 預覽時間與我的伺服器不符?

通常時區:cron 使用它運行的機器的區域,預覽使用您選擇的區域,因此將其設定為您的伺服器的區域。另一個可能的原因是日期規則 - 當設定了每月的某一天和每週的某一天時,cron 會在其中任何一個匹配時運行,其觸發頻率比大多數人預期的要高。當這種情況發生時,生成器會發出警告。

有廣告或分析嗎?

目前配置中停用廣告。網站範圍的分析僅在配置的規範生產主機上運行,並在隱私權政策中揭露;貼上的值、令牌、URL 和文件內容不包括在 ToolAcre 自己的分析事件中。

限制

  • 一切都在一個瀏覽器標籤中運行,因此每個實用程式都受裝置記憶體的限制。每個都有明確的輸入上限,拒絕超大工作而不是凍結。
  • 哈希和 UUID 產生需要安全上下文(https:// 或 localhost),因為這是瀏覽器公開 Web Crypto 的地方。
  • JWT 解碼器從不驗證簽名,加密的 JWE 令牌根本無法解碼。
  • YAML 使用純資料模式讀取;依賴自訂標籤的文件在設計上會被拒絕。
  • HTML 實體表涵蓋實際子集而不是所有 2,231 HTML5 命名引用,並且報告未知名稱而不是猜測。
  • diff 比較整行。更改的行中沒有單字級或字元級突出顯示。
  • HTML 編輯器的清理程序是其自身輸出的允許列表,而不是用於不受信任輸入的通用 XSS 過濾器,而且它沒有圖像、表格或樣式。
  • docker 轉換器一次處理一個 docker run 指令,並命名它無法代表的每個標誌,而不是刪除它。
  • cron 產生器僅讀取五字段 crontab 語法,其下次運行時間是基於瀏覽器時區資料的預覽,而不是對伺服器的保證。