2009-09-13 61 views
1

我們正在用C#.net作爲語言構建ASP.NET應用程序。ASP.NET web應用程序 - 表單字段數據的Serverside驗證

這裏我們使用ASP.NET驗證控件在客戶端驗證表單字段的數據。現在我們計劃在服務器端驗證表單字段的數據,以避免黑客進行腳本注入。

如果你有什麼想法,請你指導我嗎?

如果您還可以提供參考文檔或Web引用(如果需要),將會很棒。

回答

1

如果您使用ASP.NET驗證控件,它們還包括服務器端驗證。

你可以看看MSDN瞭解更多信息這裏:http://msdn.microsoft.com/en-us/library/aa479013.aspx

從MSDN頁面

直:

是什麼使得這些驗證服務器控件有效的是,當含有這些控件的ASP.NET頁面是請求,它是決定是否在客戶端或服務器上執行驗證的ASP.NET引擎,具體取決於發出請求的瀏覽器。因此,根據請求的瀏覽器,您的頁面功能會發生變化,從而使您可以使網頁儘可能達到最佳狀態,而不是使Web應用程序變爲最低公分母。

1

ASP.Net驗證控件實際上同時進行客戶端和服務器端驗證,但是這通常用於諸如所需字段,長度,格式匹配之類的東西。驗證控件通常不用於防止惡意活動。

在保護您的應用程序方面,需要注意的兩件事是腳本注入和SQL注入。

默認情況下,ASP.net中內置了一些腳本注入保護,但最好還是直接防禦攻擊。任何由用戶輸入產生的輸出都應該在輸出前進行編碼。您可以使用HttpUtility.HTMLEncode()。還有一個來自Microsoft的AntiXss庫,可提供增強的保護。

請注意,這些措施通常儘可能接近程序輸出。此方法不會拒絕包含惡意腳本的條目,而是將腳本編碼爲無害的文本輸出。

當然,存儲到數據庫的任何數據都應該參數化或通過linq插入以防止SQL注入 - 這將確保存儲的數據是強類型的,並且不能作爲查詢執行。

XSS Defense Tips
AntiXss library Download