Web的安全防禦淺談——時訊無線

一個網站要想更安全許多事情就可以在開發的過程中解決!

以ASP.NET舉例為說!

ASP.NET是一個編譯型的網站,但是如果沒有做好嚴格的文件名過濾,和數據庫的操作封裝!還是有很大的安全影響

一下是一個企業網站的製作過程中的安全工作例子!

一個企業網站具備的功能明白說就是一個新聞管理系統!

所需要做的安全工作也十分簡單!

防注入方面:

第一:替換單引號,即把所有單獨出現的單引號改成兩個單引號,防止攻擊者 修改SQL命令的含義。再來看前面的例子,“SELECT * from Users WHERE login = ''' or ''1''=''1' AND password = ''' or ''1''=''1'”顯然會得到與“SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'”不同的結果。

第二:刪除用戶輸入內容中的所有連字符,防止攻擊者構造出類如“SELECT * from Users WHERE login = 'mas' -- AND password =''”之類的查詢,因為這類查詢的後半部分已經被註釋掉,不再有效,攻擊者只要知道一個合法的用戶登錄名稱,根本不需要知道用戶的密碼就可以順利獲得訪 問權限。

第三:對於用來執行查詢的數據庫帳戶,限制其權限。用不同的用戶帳戶執行查詢、插入、更新、刪除操作。由於隔離了不同帳戶可執行的操作,因而也就防止了原本用於執行SELECT命令的地方卻被用於執行INSERT、UPDATE或DELETE命令。

以上是我是我收集的一些看法!我的看法是下面兩條!

Web的安全防禦淺談——時訊無線

Web的安全防禦淺談——時訊無線

第四:個人覺得所有最數據進行操作的事件或者語句最好用存儲過程來寫入,這可以有效的避免MySql數據的顯錯暴庫!而且對此還需要做一個頁面當黑客注入觸發防注入的時候跳轉到該頁並提示非法操作!

第五:對Url後面的ID參數之後的內容進行URL編碼,這樣可以達到加密效果!雖然可以轉換過來,但是考慮到一般人不會這麼做!

對於文件名過濾方面:

第一:通過查看源碼發現,現在還是有很多程序員在做過濾的時候都是用的Javascript做本地驗證和過濾!這樣做,個人覺得十分不好。過濾的代 碼可以給被攻擊者看到,畢竟人有疏忽時!這樣做有一定風險!個人看法覺得還是直接通過C#來寫源碼過濾比較好!雖然麻煩點,但是勝在源碼不會被看見!

第二:對於上傳文件名的過濾,大部分企業網站開發人員為了方便就直接使用編輯器的上傳功能!這擁有十分大的風險!雖然我自學WEB安全也一年多,但是還是知道一個網站最容易被拿下的也是編輯器!

所以還是自己做一個上傳功能比較好!對於上傳的過濾也十分重要!很多開發者在對這個進行過濾是可能都會去判斷最後一個.後面的文件後綴是否非法,這麼做也不是不可以,但是這麼做還有在做調節,當後面後綴正確時,則修改文件名以時間為標準!

後臺方面:

第一:在做管理員登陸的時候,記錄用戶數據建議用Session而不用Cookie,因為Cookie很不安全!

第二:在做後臺的時候,編輯器是始終要考慮的問題,最好刪掉一些上傳和管理頁面,只留下編輯器!還有小心FCK編輯器的配置文件,這個地方刪除了 TEST 頁面最好也對配置文件名字進行更改!不過挺麻煩更改了之後,裡面的一些文件內容也要改一下,還有一個方法就是對配置文件的目錄做可讀不可寫權限!

第三:數據庫備份這個功能最好不要加,加也可以,但是要強制備份成.mdb或.mdf!最好就是備份成功路徑也不要顯示!

第四:要給數據庫做好嚴格的放防下載,防止下載敏感資料!

服務器方面:

第一:禁用Wscipit.shell組建!

第二:對於網站路徑做好嚴格的權限設置,特別是編輯器路勁,最好可讀不可寫!

第三:MySql,MsSql不要用默認的賬號密碼!

第四:對C盤做權限設置,特別是臨時文件夾,回收站路徑,windows路徑,程序路徑!

第五:殺毒軟件實時更新,APR防火牆!

第六:如果條件可以弄一臺服務器做數據庫服務器,如果不行對數據庫路徑做好權限設置不可讀不可寫!

第七:server—u這些上傳工具最好不要用,或者用別的功能相等的工具!

第八:修改3389鍵值的端口!

第九:做好路由防護,以防止APR嗅探!

第十:做好通服務器網站旁註,聽說最近360安全專家出了一個旁註安全檢測,可以試試!

好了,以上想到的就這麼多了!當然權限設置主要是針對於遊客權限,匿名權限,以及iis的一些權限!


分享到:


相關文章: