更新:2007 年 11 月
大多數的指令碼擅用發生在使用者可將可執行程式碼 (或指令碼) 放入應用程式中時。根據預設,ASP.NET 提供要求驗證,當張貼的表單上包含任何的 HTML 時,會引發錯誤。
使用下列方法可以防範指令碼擅用:
對表單變數、查詢字串變數和 cookie 值執行參數驗證。這個驗證應包括兩種類型的驗證:是否可將變數轉換為預期型別 (例如,轉換為整數、轉換為日期時間等等) 的驗證,以及預期範圍或格式的驗證。例如,應使用 Int32..::.TryParse 方法檢查應該是整數的表單張貼變數,以驗證該變數是否確實是整數。此外,還應檢查結果整數,以驗證該值是否在預期的值範圍內。
將值寫出至回應時,會將 HTML 編碼套用至字串輸出。這可確保任何使用者提供的字串輸入在瀏覽器中都會呈現為靜態 (Static) 文字,而不是可執行指令碼或解譯的 HTML 項目。
HTML 編碼使用 HTML 保留字元轉換 HTML 項目,如此就會顯示而不是執行 HTML 項目。
若要將 HTML 編碼套用至字串
概念