~/VibeHandbook
免費 PDF

18 · 05

檔案處理與上傳

讓使用者上傳檔案是一片悄無聲息的雷區,而 AI 的初稿幾乎從來不會堵上那些洞:

  • 校驗型別和大小。 沒有限制,就會有人上傳一個 10 GB 的檔案或一個可執行程式。檢查實際的內容,而不只是檔名字尾——字尾誰都能改。
  • 永遠不要信任檔名。 一個像 ../../etc/passwd 這樣的檔名,可能讓一個天真的處理邏輯把檔案寫到目標資料夾之外(這叫 path traversal,路徑穿越)。自己生成安全的檔名,而不是用對方給的那個。
  • 不要從和你應用相同的源(origin)上提供上傳的檔案,也不要讓上傳的檔案被當作程式碼執行。一個使用者提供的檔案落進了你伺服器會去執行的資料夾,那就是一條直通被接管的路。

這些你不必全都自己造——一個儲存服務能幫你搞定大部分——但你得主動去要,因為 AI 不會主動給你。“加一個上傳功能”給你的是理想路徑。“加一個上傳功能,要校驗檔案型別和大小、除了圖片之外一律拒絕、並用生成的檔名來儲存”給你的,才是更接近安全的東西。

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。