密碼保護分享:只給特定人看的圖片/影片
並不是所有分享都該是公開的。工作用的機密截圖、活動花絮、家庭照片、還沒上市的產品圖 — 這些你可能只想給「那一個人」或「那一小群人」看。load.tw 的密碼保護讓你優雅地做到這件事。
什麼時候需要密碼保護?
情境 1:工作機密
設計師把稿件給客戶看、工程師把 PoC 截圖傳給主管、記者把採訪現場照片寄給編輯 — 這些場景都需要「只給特定人看,不希望被轉貼出去」的機制。E-mail 附件太大、雲端硬碟要加對方帳號太麻煩,最快的方式是:上傳到 load.tw 設密碼,把「連結 + 密碼」分開兩個管道(網址貼 LINE、密碼用口頭念)告訴對方。
情境 2:家人間分享
生日派對照片、孩子的成長紀錄、旅行家族相簿 — 你可能希望分享給家族 LINE 群組,但不想它被陌生人 Google 搜尋到。加一個密碼,短網址就算被意外貼到公開聊天室也打不開。
情境 3:限時獨家
Youtuber / Podcaster 常做「訂閱者獨家照片」。你可以上傳到 load.tw 設密碼為「訂閱者知道的暗號」,然後在影片最後告訴觀眾密碼。非訂閱者即使拿到連結也看不到內容。
情境 4:未發表的作品
插畫師、設計師常常要在「作品還沒公開」的階段給合作對象預覽。設密碼可以保證這些作品不會被提前流出,保護你的發表權。
如何設定密碼
在上傳頁面的表單裡,找到「密碼保護(建議)」欄位。這欄預設留空(= 不設密碼,任何拿到連結的人都能看)。填入你想要的密碼後直接按建立分享連結即可。
密碼強度建議:load.tw 沒有對密碼長度做強制限制,但我們建議至少 6 個字元以上,混合英數字。避免用
1234、password、qwerty、abc123這類常見密碼。
訪客端的體驗
當別人打開 load.tw/av5F45 這條受密碼保護的連結時:
- 他會先看到一個 Apple 風的鎖定畫面,上面有 🔒 圖示和「這個分享需要密碼」標題
- 輸入密碼後按「解鎖」
- 密碼正確:頁面重新載入,顯示完整的圖片/影片
- 密碼錯誤:紅字提示「密碼錯誤」,可以再試
解鎖後,session cookie 會記住「這個訪客已經通過這個 upload 的驗證」,同一個瀏覽器 session 內不會再被問第二次。訪客重新整理、前進後退、跳轉外站再回來都能直接看到內容。
技術細節:密碼是怎麼存的?
我們絕對不會把你設定的密碼明文存在資料庫。實際流程是:
- 你在表單輸入密碼,瀏覽器透過 HTTPS POST 到 load.tw 的 PHP 後端
- 後端用 PHP 內建的
password_hash($pw, PASSWORD_BCRYPT)產生 bcrypt 雜湊(成本因子預設為 10) - 資料庫只存那個雜湊字串,原密碼從記憶體被丟棄
- 日後訪客輸入密碼時,我們用
password_verify($pw, $hash)做比對
這意味著:即使攻擊者偷走整個資料庫備份,他也沒辦法看到你的原密碼,必須一個一個暴力試,而 bcrypt 的設計讓暴力試非常昂貴(每次比對約 100ms,試 10 萬次需要近 3 小時)。
跟其他防護組合
密碼保護可以跟以下機制疊加使用:
- 有效期限:即使密碼被洩漏,到期後連結就失效
- 瀏覽次數限制:限定 N 人可看,避免密碼被群組分享後無限擴散
- 不公開於首頁:避免在 Google 被搜尋到
最「核武」的組合是:密碼 + 1 小時有效期限 + 瀏覽次數上限 3 次 + 不公開。這意味著:你指定的 3 個人必須在 1 小時內輸對密碼才能看到,超過任何一個條件就自動鎖死。
常見問題
密碼會明文存在資料庫嗎?
不會。我們用 PHP 的 password_hash() + PASSWORD_BCRYPT 演算法儲存密碼雜湊。即使有人取得我們的資料庫備份,他看到的也只是加密字串,沒辦法還原成原始密碼。
密碼忘了可以救回嗎?
不能。因為 bcrypt 是單向雜湊,任何人(包括 load.tw 管理員)都沒辦法反查原密碼。但你可以登入自己的帳號,到「我的後台」→「編輯」→ 勾選「變更密碼」重新設定一組新的。
可以同時用密碼 + 有效期限嗎?
可以,而且強烈建議。最安全的組合是:「密碼 + 瀏覽次數限制 3 次 + 有效期限 1 小時」,這三重鎖任何一個觸發都會讓連結失效。
輸入密碼後會不會每次都要重打?
不會。我們在 session 裡記住「這個 upload 的密碼已解鎖」的狀態,同一個瀏覽器 session 內不用重打。關掉瀏覽器或換裝置才會重新要求。
能防止暴力破解嗎?
可以 — 但最佳實踐還是用夠強的密碼。bcrypt 的運算成本設計就是為了讓暴力破解變得非常昂貴;搭配 Cloudflare 的 rate limiting,攻擊者一小時最多能試少量次數。請避免用 "1234"、"password" 這類常見密碼。