繁體中文

影片與字幕·直接媒體下載器

簽署且過期的 URL:為什麼直接連結明天就會停止運作

· 背景

網址 安全 下載

一個檔案 URL,在時脈旁邊帶有簽名和到期參數
原始 ToolAcre 向量圖

許多直接連結在其查詢字串中帶有簽名和到期時間。這篇文章解釋了預簽名 URL 的工作原理、CDN 和儲存服務使用預簽名 URL 的原因以及如何在其失敗之前對其進行識別。

該連結在周五有效,但在周一返回錯誤 - 這是大多數「損壞」直接連結背後的模式

連結可能會在周五成功並在周一返回 HTTP 錯誤,但檔案不會移動。該查詢可以包含有時間限制的授權,其有效性在嘗試之間結束。

ToolAcre 報告可讀取的不成功狀態,並指出該位址可能已過期、已移動或需要登入。當 HTTP 回應可用時,它不會將過期重新解釋為 CORS。大額傳輸尤其容易受到這種時間間隙的影響,因為有效連結可能會在共享後、收件者開始或完成使用之前過期。長時間錄製會放大這種時間風險,因為授權可能會在共享、開始和完成傳輸之間失效。

什麼是簽章 URL — 普通檔案路徑加上簽章、過期時間,有時還有允許的 IP,所有這些都在查詢字串中

簽章 URL 將普通資源路徑與服務系統所使用的值組合起來以驗證授權。這些可能代表簽章、到期日、憑證範圍、政策或用戶端限制。

參數名稱和編碼是特定於提供者的。瀏覽器將它們視為查詢資料,而伺服器在請求時決定它們的組合是否有效。有些方案還綁定方法或標頭,因此提供者可能允許 GET 但拒絕 HEAD;只有其記錄的簽章演演算法才能解釋該結果。一些提供者在驗證中包含方法或選定的標頭,在同一可見查詢下允許 GET 而拒絕 HEAD。

為什麼儲存服務和 CDN 使用它們 — 共用私人檔案而不公開或需要登入

儲存服務和 CDN 使用簽章位址來共用私人對象,而無需使其路徑永久公開或在每次下載時附加互動式登入。

因此,擁有即時連結可能是敏感的。避免將其貼到不受信任的中繼、發布螢幕截圖或將其留在授權工作流程之外的共享筆記中。如果連結洩漏,較短的有效期會減少暴露,而撤銷和存取日誌仍然是提供者的功能,而不是下載的 URL 本身的功能。短暫的有效性減少了洩漏的風險,而撤銷和存取日誌記錄仍然是發行提供者的能力。

讀取查詢字串 — 發現常見 URL 形狀中的到期時間戳記和簽章參數

尋找建議到期、簽章、令牌、政策或供應商前綴驗證的查詢名稱。類似紀元的值可能代表截止日期,但在轉換之前需要檔案。

ToolAcre 的規範化器故意保留 `token`、`expires`、`signature` 和 X-Amz 樣式欄位。它僅刪除已知的分析型金鑰,因為剝離授權會更改所處理的請求。不要隨意解碼或刪除不熟悉的參數,因為即使名稱不明顯,看起來不透明的值也可能成為簽名規範請求的一部分。即使未知參數的名稱看起來與安全性無關,也可能會參與規範簽名,因此請保留它們不變。

工作範例:帶有時間戳記的儲存連結 - 計算出它何時過期以及之後的錯誤情況

假設提供者檔案將到期參數定義為紀元秒數。在開始大規模傳輸之前,請根據記錄的規則對其進行轉換,並將其與當前 UTC 時間進行比較。

在截止日期之後,主機可能會傳回 403、另一個錯誤或重新導向;沒有通用的回應形狀。具體的證據是該提供者所服務的狀態和主體,而不是發明的訊息。如果主機提供結構化錯誤主體,請為擁有者保留它,而無需發布產生它的簽署位址。為擁有者保留任何結構化錯誤回應,同時保護產生它的簽署地址免受更廣泛的洩漏。

這不包括什麼 - 更新連結,只有檔案的所有者可以執行此操作

下載者無法續訂、退出、重新整理或擴充位址。只有控制來源或其授權共享系統的一方才能發布另一個有效連結。

它也不會保留登入工作階段,因為憑證被省略。如果存取需要帳戶 cookie 而不是 URL 授權,則該檔案不屬於本產品的設計範圍。手動更改時間戳會使大多數簽章失效,因為截止日期參與伺服器驗證;這不是一個擴展機制。更改時間戳通常會使驗證無效,因為截止日期本身有助於簽名,而不是充當可編輯的元資料。

重點:連結有效時下載 — Direct Media Downloader 的 URL 檢查和宣布的獲取如何適合過期連結

在授權連結處於活動狀態且檔案適合瀏覽器工作流程時下載。本機驗證確認初始位址符合方案和主機策略,然後明確要求讓來源評估其簽章。

主機公告沒有透露令牌是否仍然有效。檢查連結可以使用 HEAD 測試可及性,但某些供應商處理 HEAD 的方式與 GET 不同,因此它不是續約或保固。對於歸檔工作流程,在刪除發送者的權威副本之前,協調連結發布與傳輸視窗並驗證已儲存的位元組。與計劃的傳輸視窗協調發行,然後在撤銷發送者的權威副本之前驗證已完成的資產。