文章目錄
- 1. 防止頁面注入
- 2. 防止SQL指令碼注入
- 3. 防止cookie偽造
1. 防止頁面注入
a) 限制所有頁面輸入框的輸入格式、輸入類型、輸入長度以及輸入字元。例如:禁止輸入“‘”, ”;”等特殊字元,並限制輸入數位長度,對於輸出的內容進行HtmlEncode格式化輸出;
b) 頁面程式需要過濾所有post或get請求中的參數資訊中非法字元,對所有的QueryString資訊過濾,對於每一個QueryString[“name”]都要加上AntiXss.HtmlEncode(queryString[“name”]),對QueryString進行編碼。
註:AntiXSSLibrary.dll,是一個很好的過濾頁面非法字元工具,它會將一些危險字元轉換成安全的HTML編碼內容。:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651
用法:使用AntiXss.HtmlEncode(“要進行格式化輸出輸入的內容”) 方法格式化輸入和輸出的HTML內容;
c) 做好網站的customError跳轉頁面。只要網站出現錯誤,則跳到404錯誤頁面。可以避免別人根據你的錯誤提示,得到一些網站資訊;
d) 伺服器管理員應對IIS網站設定相應執行許可權,特別是對於一些使用者可以上傳的資源檔夾,更應該合理分配執行修改許可權,並避免使用everyone帳號許可權;
e) 對於URL中出現一些特殊、危險的字串,講行提示並跳轉到404頁面。(如:Delete,update等這些特殊字元) ;
f) 加密web網站webconfig裡的串連資料庫字串,防止被非法使用者擷取webconfig內容,從而攻陷資料庫。
2. 防止SQL指令碼注入
a) 在程式編碼過程中,應杜絕SQL拼接的方式去寫SQL語句,而用參數化的方式或者預存程序;
b) 許可權限制,對資料庫,預存程序等等進行許可權限制。例如:對於一些只是查詢,而不做其它操作的資料表,只給其查詢的許可權,這樣更能杜絕一些通過非法SQL修改資料庫表資料的操作。通過建兩個資料庫帳號進行讀寫分離的方式也是有效方法;
c) 避免使用SA帳號,來串連資料庫;
d) 伺服器應該過一段時間,就打一次補丁,及時修複系統和安全性漏洞。
3. 防止cookie偽造
在網站中,應該盡量避免寫入明文的使用者名稱和密碼。建議對Cookie進行加密或著二次加密碼,防止惡意偽造cookie對網站進行跨網站指令碼攻擊,例如:.net特有的form驗證,可以將使用者登入票據進行加密然後放入用戶端cookie中。