摘要:SQL注入漏洞:1.解決SQL注入漏洞的關鍵是對所有來自用戶輸入的數據進行嚴格檢查、對數據庫配置使用最小權限原則2.所有的查詢語句都使用數據庫提供的參數化查詢接口,參數化的語句使用參數而不是將用戶輸入...
1.解決SQL注入漏洞的關鍵是對所有來自用戶輸入的數據進行嚴格檢查、對數據庫配置使用最小權限原則
2.所有的查詢語句都使用數據庫提供的參數化查詢接口,參數化的語句使用參數而不是將用戶輸入變量嵌入到SQL語句中。
3.對進入數據庫的特殊字符('"\<>&*;等)進行轉義處理,或編碼轉換。
4.確認每種數據的類型,比如數字型的數據就必須是數字,數據庫中的存儲字段必須對應為int型。
5.數據長度應該嚴格規(guī)定,能在一定程度上防止比較長的SQL注入語句無法正確執(zhí)行。
6.網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
7.嚴格限制網站用戶的數據庫的操作權限,給此用戶提供僅僅能夠滿足其工作的權限,從而最大限度的減少注入攻擊對數據庫的危害。
8.避免網站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
9.在網站發(fā)布之前建議使用一些專業(yè)的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。
XSS跨站腳本漏洞:
1.假定所有輸入都是可疑的,必須對所有輸入中的scrIPt、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請求中的Cookie中的變量,HTTP請求頭部中的變量等。
2.不要僅僅驗證數據的類型,還要驗證其格式、長度、范圍和內容。
3.不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
4.對輸出的數據也要檢查,數據庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
5.在網站發(fā)布之前建議測試所有已知的威脅。
頁面存在源代碼泄露:
1. 配置好服務端語言解析,防止解析失敗而導致源碼泄露;
2. 關閉網站錯誤調試機制,防止因為報錯而導致源碼泄露。
網站存在備份文件:刪除檢測出的備份文件,或者將這類文件從網站目錄下移走。
網站存在包含SVN信息的文件:刪除網站目錄下的SVN信息,不要使用SVN目錄作為網站的目錄。
網站存在Resin任意文件讀取漏洞:刪除resin_doc相關目錄與文件。
網站存在目錄瀏覽漏洞:關閉Web容器(如IIS/Apache等)的目錄瀏覽功能,比如:
1.IIS中關閉目錄瀏覽功能:在IIS的網站屬性中,勾去“目錄瀏覽”選項,重啟IIS;
2.Apache中關閉目錄瀏覽功能:打開Apache配置文件httpd.conf,查找 “Options Indexes FollowSymLinks”,修改為“ Options -Indexes”(減號表示取消),保存退出,重啟Apache。
網站存在PHPINFO文件:刪除檢測出的PHPINFO文件。
網站存在服務器環(huán)境探針文件:刪除檢測出的探針文件,比如:iprober.php、phpcheck.php、jspcheck.jsp、DotNetInfo.aspx、aspcheck.asp等。
網站存在日志信息文件:刪除檢測出的日志信息文件。
網站存在JSP示例文件:刪除JSP示例文件。
頁面上存在數據庫信息:關閉數據庫的錯誤調試機制,防止因為SQL語句錯誤導致數據庫報錯信息顯示到頁面上。
頁面上存在網站程序的調試信息:關閉網站程序的調試機制,這個機制經常被用于網站的測試調試,該機制能顯示出很詳細的網站報錯信息。
網站存在后臺登錄地址:
1.將后臺登錄地址隱藏,改個不容易猜到的路徑;
2.配置好后臺登錄地址的訪問權限,比如只允許某個IP或IP段的用戶訪問。
網站存在服務端統計信息文件:刪除檢測出的服務端統計信息文件。
網站存在敏感目錄:這些目錄經常用于存放敏感的文件,可以考慮從網站目錄中分離出,或改個不易猜測到的路徑,并配置好訪問權限。
轉載請保留原文地址: http://www.saitell.cn/show-247.html