pre-signed-url · L5
簽章會進 log
簽章會進 log:它是明文、會被到處記下
一句話:整條 pre-signed URL(含 X-Amz-Signature)是明文、在網址裡,會被一路記進各種 log——任何看到那串字的人,在期限內都能用它。
它不是「加密」的,是「簽名」的
先破除誤會:pre-signed URL 沒有把內容藏起來。簽章的作用是「防篡改、證明被授權過」,不是「保密」。整條 URL 攤在明面上——這是它作為 bearer token(Level 1)的本質,改不了。
會無聲記下你 URL 的地方
- 瀏覽器歷史、開發者工具的 network 面板;
- 反向代理 / 負載平衡 / CDN 的 access log;
- 你自己應用程式的 request log、錯誤堆疊;
- 聊天軟體、issue tracker、螢幕截圖、監控系統……
這些地方常常「預設就記整條網址」,你根本沒察覺 URL 已經被留了副本。
該怎麼做
- 別把 pre-signed URL 印進你的 log——真要記,只記物件 key,或把 query(尤其
X-Amz-Signature)遮掉。
- 別把它當「可以長期公開貼」的連結——它是臨時的,貼哪都等於把鑰匙留在那。
- 承認「它一定會外洩到某些 log」,所以用短期限兜底(上一篇的主題)——就算被記下,很快也失效。
一句話:把 pre-signed URL 當「會被別人看到的臨時鑰匙」來設計,而不是當「祕密」。安全靠命短、少露,不靠藏。
參考來源