首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

防止表單重複提交的多種策略

     編輯:關於ASP.NET

表單重複提交是多使用者 Web 應用常見問題,來源包括:雙擊提交按鈕、重新整理頁面、瀏覽器前進/後退、歷史記錄重送、瀏覽器重複 HTTP 請求。

防禦方法

  1. 停用提交按鈕:提交後用 JavaScript 設 disabled。缺點:用戶停用 JS 則失效。
  2. Post/Redirect/Get (PRG) 模式:提交處理完成後導向成功頁面。可避免 F5 重送、前進/後退重送,且無瀏覽器警告。
  3. Session Token 驗證:表單載入時產生唯一 Token 存 Session 與隱藏欄位;提交時比對並移除 Session Token。若 Token 缺失或不符,拒絕處理。兼具 CSRF 防護。
  4. 資料庫唯一約束/索引:於資料表建立唯一鍵或索引,從資料層杜絕重複資料。最徹底有效。

建議採用 PRG 模式搭配 Session Token 多層防禦,關鍵業務再輔以資料庫約束,全方位解決重複提交風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved