中文檔名下載會壞掉的原因

HTTP 標頭只准英文字元,中文檔名要按 RFC 5987 編碼;中文環境的系統必測中文檔名上傳下載,英文環境測不出來。

分享
中文檔名下載會壞掉的原因
定義:HTTP 標頭(伺服器告訴瀏覽器「這個檔案叫什麼名字」的欄位)規定只能放英文字元,中文檔名直接塞進去就會下載失敗或變亂碼。國際標準 RFC 5987 定義了正確的編碼方式。

當時的症狀 vs 真正的原因

症狀:檔案管理功能上線後,英文檔名的檔案下載都正常,中文檔名的會失敗或變亂碼。

真正的原因:檔名放在 HTTP 標頭裡傳給瀏覽器,而標頭欄位只准英文字元。中文要先按 RFC 5987 的方式編碼再放。

教訓

只要系統會處理檔案上傳下載、而使用者是中文環境,「中文檔名」就必須是明確的測試項目。這種問題 AI 一修就好,但沒人提醒它就常會漏掉——因為英文環境測不出來。

驗收清單

  • 上傳中文檔名的檔案→下載回來,名字對不對。
  • 瀏覽器直接開啟該檔案,會不會亂碼。

Read more

當軟體小白開始遇到資安問題

當軟體小白開始遇到資安問題

前端的權限處理好了,那後端呢? 花了快一天的時間,才弄清楚我到底在修什麼issue,這個資安問題分成兩部分。 第一個是前端寫好的權限,但使用者可以透過網頁開發者工具(F12)去修改自己的身分,把自己從一般使用者改成主管,來獲得操作權限。 要解決這個問題有三個步驟要設定: 1. 資料行安全性設定檔,加成員( powerplatform > 環境 > XXXX > 設定>資料行安全性設定 > 使用者) 2. 啟用資料行安全性( Power Apps > 資料表 > 使用者 > 資料行 > 點擊欲修改的顯示名稱 > 進階選項) 3. 回到資料行安全性設定檔,編輯資料行權限(讀取、更新、建立) 如此一來,有更新、建立權限的人員,才能去修改該資料行的值。 確保了後端的使用者權限不會被亂改後,

By yuchang23