安全測試通常要考慮的測試點
更多學習資料
https://edu.csdn.net/course/detail/25768
https://edu.csdn.net/course/detail/22948
1,
問題:沒有被驗證的輸入
測試方法:
數據類型(字符串,整型,實數,等)
允許的字符集
最小和最大的長度
是否允許空輸入
參數是否是必須的
重複是否允許
數值範圍
特定的值(枚舉型)
特定的模式(正則表達式)
2,
問題:有問題的訪問控制
測試方法:
主要用於需要驗證用戶身份以及權限的頁面,複製該頁面的url地址,關閉該頁面以後,查看是否可以直接進入該複製好的地址
例:從一個頁面鏈到另一個頁面的間隙可以看到URL地址
直接輸入該地址,可以看到自己沒有權限的頁面信息,
3 錯誤的認證和會話管理
例:對Grid、Label、Tree view類的輸入框未作驗證,輸入的內容會按照html語法解析出來
4,緩衝區溢出
沒有加密關鍵數據
例:view-source:http地址可以查看源代碼
在頁面輸入密碼,頁面顯示的是 *****, 右鍵,查看源文件就可以看見剛纔輸入的密碼,
5,拒絕服務
分析:攻擊者可以從一個主機產生足夠多的流量來耗盡狠多應用程序,最終使程序陷入癱瘓。需要做負載均衡來對付。
更多學習資料
https://edu.csdn.net/course/detail/25768
https://edu.csdn.net/course/detail/22948
6,不安全的配置管理
分析:Config中的鏈接字符串以及用戶信息,郵件,數據存儲信息都需要加以保護
程序員應該作的: 配置所有的安全機制,關掉所有不使用的服務,設置角色權限帳號,使用日誌和警報。
分析:用戶使用緩衝區溢出來破壞web應用程序的棧,通過發送特別編寫的代碼到web程序中,攻擊者可以讓web應用程序來執行任意代碼。
7,注入式漏洞。
例:一個驗證用戶登陸的頁面,
如果使用的sql語句爲:
Select * from table A where username=’’ + username+’’ and pass word …..
Sql 輸入 ‘ or 1=1 ―― 就可以不輸入任何password進行攻擊
8,不恰當的異常處理
分析:程序在拋出異常的時候給出了比較詳細的內部錯誤信息,暴露了不應該顯示的執行細節,網站存在潛在漏洞,
9,不安全的存儲
分析:帳號列表:系統不應該允許用戶瀏覽到網站所有的帳號,如果必須要一個用戶列表,推薦使用某種形式的假名(屏幕名)來指向實際的帳號。
瀏覽器緩存:認證和會話數據不應該作爲GET的一部分來發送,應該使用POST,
10 問題:跨站腳本(XSS)
分析:攻擊者使用跨站腳本來發送惡意代碼給沒有發覺的用戶,竊取他機器上的任意資料
測試方法:
? HTML標籤:<…>…</…>
? 轉義字符:&(&);<(<);>(>); (空格) ;
? 腳本語言:
<script language=‘javascript’>
…Alert(‘’)
</script>
? 特殊字符:‘ ’ < > /
? 最小和最大的長度
? 是否允許空輸入
更多學習資料
https://edu.csdn.net/course/detail/25768
https://edu.csdn.net/course/detail/22948