安全概覽
平台保護評量、學員資料與受保護功能所遵循的原則。
- 預估時間
- 約 5 分鐘
- 最後驗證
瀏覽所有說明主題
跳至文章內容伺服器端授權
教師與管理功能使用平台自己的登入機制(Google 或 Email 加密碼,由伺服器端工作階段維持登入)。每一次存取都在伺服器端檢查身分與角色,預設為拒絕。受保護頁面在載入前就會檢查權限,未授權時不會送出頁面內容。
伺服器端評分
評量的正確答案只存在伺服器端,不會出現在公開頁面、網站程式、靜態資料或下載檔案中。重複送出同一次作答不會重新評分。同樣的原則也適用於認證:能力證書與其他層級認證的評分規準、資格判斷規則與審核結果,一律只存在伺服器端與受保護的後台工具,核發與撤銷的判斷都由伺服器決定,不是前端顯示或隱藏就能決定的。
輸入與輸出處理
- 所有 API 輸入都經過結構驗證
- 資料庫查詢一律使用參數綁定,不以字串拼接使用者輸入
- 使用者輸入的文字在畫面上會被安全地跳脫顯示
- 匯出的 CSV 會中和試算表公式注入
- 以登入工作階段進行的變更操作必須來自同一來源,其他網站無法代為觸發
課後回饋的保護措施
- 每個回饋端點都在伺服器端檢查:學員只能讀寫自己的回饋;教師只看自己的課程與場次;人資檢視者只看被授予的單位,而且這個角色不會滿足其他任何單位資料的存取檢查
- 統計一律套用最小群體門檻(少於 5 份不顯示),場次與合計的組合另有防止用減法反推的處理
- 留言先在伺服器端遮罩,再依規則審核;學員自己的原文只回給本人與管理員審核頁,不會出現在人資、教師或匯出檔中的未遮罩欄位
- 填寫、事件回報與提醒信都有頻率限制或單次上限;表單成效只使用匿名計數,學員無法偽造伺服器端的送出計數
- CSV 匯出會中和試算表公式;人資的每次讀取與匯出、留言審核、保存期限的乾跑與清理,都寫入稽核紀錄(只記單位、類型與筆數,不記留言文字)
- 梯次代碼的即時檢查只回報代碼是否有效,需登入並有頻率限制;梯次的課程綁定會改變誰能管理它,所以只有管理員能變更,變更前顯示影響、已有回饋時要輸入梯次代碼確認,並寫入稽核紀錄
- 保存期限的清理需要管理員輸入 DELETE 確認;排程只做報告,不會自動刪除
安全標頭
每個回應都附有安全標頭,包括 Content-Security-Policy、Strict-Transport-Security、X-Content-Type-Options、X-Frame-Options、Referrer-Policy 與 Permissions-Policy。非公開頁面另外標示為不被搜尋引擎索引。教師投影片匯出、角色授予與認證設定變更等敏感操作會寫入稽核紀錄,紀錄以帳號而非 Email 識別操作者。
最小權限與資料最小化
每個角色只取得完成工作所需的權限;平台以學員代碼取代真實身分,只收集完成課程所需的最少資料。登入、註冊、重設密碼、加入場次、姓名編輯、教師投影片下載與公開的合作洽詢表單都有頻率限制,限制所用的鍵值經過雜湊,不會為此儲存原始 IP 或 Email;公開表單可以啟用 Turnstile 驗證。
這篇說明對你有幫助嗎?
回饋是匿名的:只會以每日次數記錄文章、語言與你的選擇。