pre-signed-url · L1
它就是一個 bearer token
它就是一個 bearer token(持有即有效)
一句話:pre-signed URL 不記名——誰拿到那串字、在期限內、用對 method,就能存取那個物件。它是 bearer token(「持有者權杖」),持有即有效。
bearer 是什麼意思
bearer=「持有者」。bearer token 就是「拿到它的人就有效」的憑證,驗的是「你手上有沒有這張票」,不是「你是誰」。
比喻:它像現鈔或不記名電影票——票不記名,誰拿到誰就能進場,收票員不查你身分證。pre-signed URL 一樣:它不綁定特定使用者,任何人拿到就能用。
兩個必須刻進骨子裡的後果
- 外洩=權限外洩。貼到聊天室、寫進前端 HTML、被 proxy / CDN / 瀏覽器記進 log——任何看到那串字的人都能用。所以它不能無限期,一定要設短期限。
- 擋不住轉傳。你給 A 的下載連結,A 轉給 B,B 照樣能下載。想「只給某人」得靠別的機制(額外驗身分、或縮到極短期限)。
為什麼這改變了你的用法
既然是 bearer token,設計時就要當它「隨時可能被別人看到」:
- 期限抓「剛好夠用」就好——下載一張圖,幾分鐘足矣,不要簽 7 天。
- 別把它寫死進版本控制、別印進應用程式 log。
- 敏感操作(尤其上傳/覆寫)更要短命、必要時搭配 server 端額外限制(Level 5 的題目)。
這一點是後面 Level 5「安全性質與陷阱」整關的地基:因為它是 bearer token,所以期限、外洩、時鐘偏移才全都是要命的事。
參考來源