所謂系統的安全是指整個網路作業系統和網路硬體平臺是否可靠且值得信任。 目前恐怕沒有絕對安全的作業系統可以選擇,無論是Microsfot 的Windows NT或者其它任何商用UNIX作業系統,其開發廠商必然有其Back-Door。
因此,我們可以得出如下結論:沒有完全安全的作業系統。 不同的使用者應從不同的方面對其網路作詳盡的分析,選擇安全性盡可能高的作業系統。 因此不但要選用盡可能可靠的作業系統和硬體平臺,並對作業系統進行安全配置。 而且,必須加強登錄過程的認證(特別是在到達伺服器主機之前的認證),確保使用者的合法性;其次應該嚴格限制登錄者的操作許可權,將其完成的操作限制在最小的範圍內。
本人從事網站測試工作已經三年了我個人認為一個完整的Web安全體系測試可以從部署與基礎結構,輸入驗證,身份驗證,授權,建構管理,敏感性資料,會話管理,加密,參數操作,異常管理,審核和日誌記錄等幾個方面入手
資料加密:某些資料需要進行資訊加密和過濾後才能進行資料傳輸,例如使用者信用卡信 息、使用者登陸密碼資訊等。 此時需要進行相應的其他操作,如存儲到資料庫、解密發送要使用者電子郵箱或者客戶瀏覽器。 目前的加密演算法越來越多,越來越複雜,但一般資料加密的過程時可逆的,也就是說能進行加密,同時需要能進行解密!
登錄: 一般的應用網站都會使用登錄或者註冊後使用的方式,因此,必須對使用者名和匹配的密碼進行校驗,以阻止非法使用者登錄。 在進行登陸測試的時候,需要考慮輸入的密碼是否對大小寫敏感、是否有長度和條件限制,最多可以嘗試多少次登錄,哪些頁面或者檔需要登錄後才能訪問/下載等。
超時限制:WEB應用系統需要有是否超時的限制,當使用者長時間不作任何操作的時候, 需要重新登錄才能使用其功能。
SSL:越來越多的網站使用SSL安全協定進行傳送。 SSL是Security Socket Lauer(安全通訊端協定層)的縮寫,是由Netscape首先發表的網路資料安全傳輸協議。 SSL是利用公開金鑰/私有金鑰的加密技術。 (RSA),在位於HTTP層和TCP層之間,建立使用者與伺服器之間的加密通信,確保所傳遞資訊的安全性。 SSL是工作在公共金鑰和私人金鑰基礎上的,任何使用者都可以獲得公共金鑰來加密資料,但解密資料必須要通過相應的私人金鑰。 進入一個SSL網站後,可以看到瀏覽器出現警告資訊,然後網址列的HTTP變成 HTTPs,在做SSL測試的時候,需要確認這些特點,以及是否有時間連結限制等一系列相關的安全保護。
伺服器指令碼語言:指令碼語言是常見的安全隱患。 每種語言的細節有所不同。 有些 腳本允許訪問根目錄。 其他只允許訪問郵件伺服器,但是經驗豐富的駭客可以將伺服器使用者名和口令發送給他們自己。 找出網站使用了哪些指令碼語言,並研究該語言的缺陷。 還要需要測試沒有經過授權,就不能在伺服器端放置和編輯腳本的問題。 最好的辦法是訂閱一個討論網站使用的指令碼語言安全性的新聞群組。
注:駭客利用腳本允許訪問根目錄的這個安全隱患特性攻擊網站。 這個網站包含了腳本代碼(有允許訪問根目錄的特性)就可能有這個安全隱患。