一、用戶認證安全的測試要考慮問題:
1. 明確區分系統中不同用戶權限
2. 系統中會不會出現用戶沖突
3. 系統會不會因用戶的權限的改變造成混亂
4. 用戶登陸密碼是否是可見、可復制
5. 是否可以通過絕對途徑登陸系統(拷貝用戶登陸后的鏈接直接進入系統)
6. 用戶退出系統后是否刪除了所有鑒權標記,是否可以使用后退鍵而不通過輸入口令進入系統
7. 登陸失敗次數的限制,防止暴力破解
8. 輸入的賬戶密碼不能有含特殊意義的符號或命令語句
9. 設置新密碼之后,舊密碼是否有效
10. cookie中是否保存用戶名密碼,如果保存要加密
11. 防止SQL注入
12. 密碼不能明文傳輸
13. 日志和數據庫中是否記錄明文密碼
14. 網頁出錯時,不泄露敏感資料
15 頁面超時機制的驗證
二、系統網絡安全的測試要考慮問題:
1. 測試采取的防護措施是否正確裝配好,有關系統的補丁是否打上
2. 模擬非授權攻擊,看防護系統是否堅固
3. 采用成熟的網絡漏洞檢查工具檢查系統相關漏洞(即用最專業的黑客攻擊工具攻擊試一下,現在最常用的是NBSI系列和IPhacker IP)
4. 采用各種木馬檢查工具檢查系統木馬情況
5. 采用各種防外掛工具檢查系統各組程序的客外掛漏洞
三、數據庫安全考慮問題:
1. 系統數據是否機密(比如對銀行系統,這一點就特別重要,一般的網站就沒有太高要求)
2. 系統數據的完整性(我剛剛結束的企業實名核查服務系統中就曾存在數據的不完整,對於這個系統的功能實現有了障礙)
3. 系統數據可管理性
4. 系統數據的獨立性
5. 系統數據可備份和恢復能力(數據備份是否完整,可否恢復,恢復是否可以完整)
B/S與C/S安全性比較
很多用戶在提到B/S架構設計的系統后, 第一個疑惑就是,.這個軟件安全嗎?為什么用戶會有這樣的疑惑,因為B/S架構放在internet上后,只要有IE瀏覽器的電腦都可以訪問這個系統.而C/S架構只有安裝了特定Client軟件的用戶才可以使用本系統,所以一直以來我們的用戶都在擔心着B/S的安全問題.而業內一些C/S的支持者也一直把B/S的安全問題作為一個不休的話題一直在討論着.只能說這樣的討論非常無聊,我並不反對C/S有很多優點.但是從安全角度分析,B/S遠遠高於C/S.
1 前面我們講到"C/S架構只有安裝了特定Client軟件的用戶才可以使用本系統",正因為在用戶的電腦上安裝了Client所以這個系統就面臨着程序被分析,數據被截取的安全隱患,因為所有的數據必須從SERVER讀到CLIENT然后進行操作,而B/S所有的數據操作全部在SERVER上進行在CLIENT只是POST一個HTML代碼.
2 目前很多傳統的C/S系統還是采用2層結構也就是說所有的CLIENT直接讀取SERVER中的數據,在CLIENT端包括了數據的用戶名\密碼等致命的信息,難道這樣的系統安全嗎?如果這樣的系統放在INTERNET上,那么這個SERVER面向任何連接上INTERNET的用戶都是開放的,而B/S架構的系統,在CLIENT上沒有任何信息.面向用戶開放的也只是WEBSERBER,而真正保存我們數據的信息全部在DATASERVER上,這個DATASERVER完全可以不放在INTERNET上,也只能讓我們指定的WEBSERVER來訪問.
3 當然現在也流行一種3層架構的C/S系統,但是我想問的是,你做的中間件要比microsoft 寫的iis 更安全嗎?目前有很多截數據包分析的各種手段,bs 可以使用https 加密來解決。但是你的C/S 服務器有考慮過這問題嗎?你說你加密了數據,你加密的比https 還好嗎? 你沒有加密,那就是明文的,隨便找一個sniff 監聽軟件就可以把數據截下來。
還有一個觀點:B/S不如C/S
C/S:可以使用多種網絡協議,甚至可以自定義協議,從這個角度來看,C/S的安全性是有保障的。又因為它是基於客服端的,不容易被病毒攻擊,但C/S太不方便(主要是不便於數據共享)不便於隨時與用戶交流,這也是C/S的一個致命缺點。並且C/S結構軟件在保護數據的安全性方面有着先天的弊端。由於C/S結構軟件的數據分布特性,客戶端所發生的火災、盜搶、地震、病毒等都將成為可怕的數據殺手。
B/S:B/S相對C/S而言更容易被病毒光顧,使用http協議,雖然最新的https協議在安全性方面有所提升,但還是弱於C/S。
對比之后,覺得這是無謂之爭。。。先掃門前雪,把自己的產品安全性高最重要。
B/S與C/S安全測試重點比較
B/S結構
一般的B/S結構,都是多層架構的,有界面層、業務邏輯層、數據層。由於這種結構不需要客戶端的安裝,客戶端主要通過瀏覽器來訪問,因此客戶端測試的重點是:客戶端瀏覽器(不同類型和版本)以及客戶端配置(cookie設置和分辨率設置)等測試。除客戶端測試外,根據WEB系統常用技術還需要關注以下幾個方面的測試:
(1)鏈接測試
(2)表單測試
(3)腳本測試
(4)ActiveX控件測試
C/S(Client/Server)結構
即大家熟知的客戶機和服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到Client端和Server端來實現,降低了系統的通訊開銷。這種結構與B/S最顯著的區別是需要安裝客戶端,通過客戶端程序來訪問應用系統,因此C/S客戶端測試是重點,並且與B/S結構有所不同。
C/S客戶端測試的重點有:
(1)客戶端安裝測試
Ø 安裝手冊的評估
Ø 安裝的自動化程度
Ø 安裝選項和設置得測試
Ø 安裝過程的中斷測試
Ø 安裝順序測試
Ø 多環境安裝測試
Ø 安裝的正確性測試
Ø 修復安裝測試
Ø 卸載安裝測試
(2)客戶端升級測試
Ø 與變更相關的測試
Ø 變更內容的測試
(3)客戶端與服務器鏈接測試
(4)服務器端數據驗證
(5)客戶端可維護性測試