我們正在用C#.net作爲語言構建ASP.NET應用程序。ASP.NET web應用程序 - 表單字段數據的Serverside驗證
這裏我們使用ASP.NET驗證控件在客戶端驗證表單字段的數據。現在我們計劃在服務器端驗證表單字段的數據,以避免黑客進行腳本注入。
如果你有什麼想法,請你指導我嗎?
如果您還可以提供參考文檔或Web引用(如果需要),將會很棒。
我們正在用C#.net作爲語言構建ASP.NET應用程序。ASP.NET web應用程序 - 表單字段數據的Serverside驗證
這裏我們使用ASP.NET驗證控件在客戶端驗證表單字段的數據。現在我們計劃在服務器端驗證表單字段的數據,以避免黑客進行腳本注入。
如果你有什麼想法,請你指導我嗎?
如果您還可以提供參考文檔或Web引用(如果需要),將會很棒。
如果您使用ASP.NET驗證控件,它們還包括服務器端驗證。
你可以看看MSDN瞭解更多信息這裏:http://msdn.microsoft.com/en-us/library/aa479013.aspx
從MSDN頁面直:
是什麼使得這些驗證服務器控件有效的是,當含有這些控件的ASP.NET頁面是請求,它是決定是否在客戶端或服務器上執行驗證的ASP.NET引擎,具體取決於發出請求的瀏覽器。因此,根據請求的瀏覽器,您的頁面功能會發生變化,從而使您可以使網頁儘可能達到最佳狀態,而不是使Web應用程序變爲最低公分母。
ASP.Net驗證控件實際上同時進行客戶端和服務器端驗證,但是這通常用於諸如所需字段,長度,格式匹配之類的東西。驗證控件通常不用於防止惡意活動。
在保護您的應用程序方面,需要注意的兩件事是腳本注入和SQL注入。
默認情況下,ASP.net中內置了一些腳本注入保護,但最好還是直接防禦攻擊。任何由用戶輸入產生的輸出都應該在輸出前進行編碼。您可以使用HttpUtility.HTMLEncode()。還有一個來自Microsoft的AntiXss庫,可提供增強的保護。
請注意,這些措施通常儘可能接近程序輸出。此方法不會拒絕包含惡意腳本的條目,而是將腳本編碼爲無害的文本輸出。
當然,存儲到數據庫的任何數據都應該參數化或通過linq插入以防止SQL注入 - 這將確保存儲的數據是強類型的,並且不能作爲查詢執行。
正如Robban說,asp.net驗證服務器控件包括服務器端驗證。檢查服務器端驗證的方法Page.Validate()和Page.IsValid()。