什麼是安全測試?
安全測試就是要提供證據表明,在面對敵意和惡意輸入的時候,應用仍然能夠充分的滿足它的需求。
a.如何提供證據?我們透過一組失敗的安全測試案例執行結果來證明web應用程式不符合安全需求。
b.如何看待安全測試的需求?與功能測試相比,安全測試更依賴需求,因為它有更多可能的輸入和輸出可供篩選。
真正的軟體安全其實指的是風險管理,也就是我們確保軟體的安全程度符合業務需求即可。
如何進行安全測試?
基於常見攻擊和漏洞並結合實際添加安全測試案例,就是如何將安全測試變為日常功能測試中簡單和普通的一部分的方法。
選擇具有安全意義的特殊邊界值,以及具有安全意義的特殊等價類,並將這些融入我們的測試規劃和測試策略過程中。
但是若在功能測試基礎上進行安全測試,則需要增加大量測試案例。這意味著必須做兩件事來使其便於管理:縮小關注的重點和測試自動化。
Web安全測試通常要考慮的測試點?
1、問題:沒有被驗證的輸入
測試方法:
資料型別(字串,整數,實數,等)
允許的字元集
最小和最大的長度
是否允許空輸入
參數是否是必須的
重複是否允許
數值範圍
特定的值(枚舉型)
特定的模式(正規表示式)
2、問題:有問題的存取控制
測試方法:
主要用於需要驗證使用者身分以及權限的頁面,複製該頁面的url位址,關閉該頁面以後,查看是否可以直接進入該複製好的地址
例:從一個頁面鏈到另一個頁面的間隙可以看到URL地址,直接輸入該地址,可以看到自己沒有權限的頁面資訊
3、錯誤的認證和會話管理
範例:對Grid、Label、Tree view類別的輸入框未作驗證,輸入的內容會依照html語法解析出來
4、緩衝區溢位
沒有加密關鍵資料
範例:view-source:http位址可以查看原始碼,在頁面輸入密碼,頁面顯示的是*** **, 右鍵,查看原始檔案就可以看見剛才輸入的密碼
5、拒絕服務
分析:攻擊者可以從一個主機產生足夠多的流量來耗盡狠多應用程序,最終使程序陷入癱瘓,需要做負載平衡來對付
6、不安全的配置管理
#分析:Config中的鏈接字符串以及用戶信息,郵件,數據存儲信息都需要加以保護。
程式設計師應該做的:設定所有的安全機制,關掉所有不使用的服務,設定角色權限帳號,使用日誌和警報
分析:使用者使用緩衝區溢位來破壞web應用程式的棧,透過發送特別編寫的程式碼到web程式中,攻擊者可以讓web應用程式來執行任意程式碼
7、注入式漏洞
範例:一個驗證使用者登陸的頁面,
如果使用的sql語句為:
Select * from table A where username='' username '' 及 pass word …..
##Sql 輸入' or 1 =1 ―― 就可以不輸入任何password進行攻擊8、不恰當的異常處理分析:程式在拋出異常的時候給出了比較詳細的內部錯誤訊息,暴露了不應該顯示的執行細節,網站存在潛在漏洞9、不安全的存儲分析:帳號列表,系統不應該允許用戶瀏覽到網站所有的帳號,如果必須要一個使用者列表,建議使用某種形式的假名(螢幕名稱)來指向實際的帳號。 瀏覽器快取:認證和會話資料不應該作為GET的一部分來傳送,應該使用POST10、問題:跨站腳本(XSS)分析:攻擊者使用跨站腳本來發送惡意程式碼給沒有發覺的用戶,竊取他機器上的任意資料#測試方法:HTML標籤:<…>… …>轉義字元:&(&);<(<);>(>); (空格);#腳本語言: #以上是Web安全測試知識點有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!