如何做好Web 安全測試

安全測試通常要考慮的測試點

 

更多學習資料

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章