安全性测试
安全性測試
安全性測試主要是測試系統(tǒng)在沒有授權(quán)的內(nèi)部或者外部用戶對系統(tǒng)進(jìn)行攻擊或者惡意破壞時(shí)如何進(jìn)行處理,是否仍能保證數(shù)據(jù)和頁面的安全。
?
1.關(guān)于登錄
現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個(gè)頁面等。
(1)是否設(shè)置密碼最小長度
(2)用戶名和密碼中是否可以有空格或回車?
(3)是否允許密碼和用戶名一致
(4)防惡意注冊:可否用自動填表工具自動注冊用戶?
(5)遺忘密碼處理
(6)有無缺省的超級用戶?
(7)有無超級密碼?
(8)是否有校驗(yàn)碼?
(9)密碼錯(cuò)誤次數(shù)有無限制?
2.關(guān)于輸入框
1.輸入很大的數(shù)(如4,294,967,269),輸入很小的數(shù)(負(fù)數(shù))
2.輸入超長字符,如對輸入文字長度有限制,則嘗試超過限制,剛好到達(dá)限制字?jǐn)?shù)時(shí)有何反應(yīng)
3.輸入特殊字符,如:~!@#$%^&*()_+<>:”{}|
4.輸入中英文空格,輸入字符串中間含空格,輸入首尾空格
5.輸入特殊字符串NULL,null,0x0d 0x0a
6.輸入正常字符串
7.輸入與要求不同類型的字符,如:要求輸入數(shù)字則檢查正值,負(fù)值,零值(正零,負(fù)零),小數(shù),字母,空值;要求輸入字母則檢查輸入數(shù)字
8.輸入html和javascript代碼
9.對于像回答數(shù)這樣需檢驗(yàn)數(shù)字正確性的測試點(diǎn),不僅對比其與問題最終頁的回答數(shù),還要對回答進(jìn)行添加刪除等操作后查看變化
例如:
1.輸入<html”>”gfhd</html>,看是否出錯(cuò);
2.輸入<input type=”text” name=”user”/>,看是否出現(xiàn)文本框;
3.輸入<script. type=”text/javascript”>alert(“提示”)</script>看是否出現(xiàn)提示。
3.關(guān)于上傳
1.上傳文件是否有格式限制,是否可以上傳exe文件;
2.上傳文件是否有大小限制,上傳太大的文件是否導(dǎo)致異常錯(cuò)誤,上傳0K的文件是否會導(dǎo)致異常錯(cuò)誤,上傳并不存在的文件是否會導(dǎo)致異常錯(cuò)誤;
3.通過修改擴(kuò)展名的方式是否可以繞過格式限制,是否可以通過壓包方式繞過格式限制;
4.是否有上傳空間的限制,是否可以超過空間所限制的大小,如將超過空間的大文件拆分上傳是否會出現(xiàn)異常錯(cuò)誤。
5.上傳文件大小大于本地剩余空間大小,是否會出現(xiàn)異常錯(cuò)誤。
6.關(guān)于上傳是否成功的判斷。上傳過程中,中斷。程序是否判斷上傳是否成功。
7.對于文件名中帶有中文字符,特殊字符等的文件上傳。
下載:
避免輸入:\..\web.
修改命名后綴。
4.關(guān)于URL:
1.某些需登錄后或特殊用戶才能進(jìn)入的頁面,是否可以通過直接輸入網(wǎng)址的方式進(jìn)入;
2.對于帶參數(shù)的網(wǎng)址,惡意修改其參數(shù),(若為數(shù)字,則輸入字母,或很大的數(shù)字,或輸入特殊字符等)后打開網(wǎng)址是否出錯(cuò),是否可以非法進(jìn)入某些頁面;
3.搜索頁面等url中含有關(guān)鍵字的,輸入html代碼或JavaScript看是否在頁面中顯示或執(zhí)行
4. Web應(yīng)用系統(tǒng)是否有超時(shí)的限制,也就是說,用戶登陸后在一定時(shí)間內(nèi)(例如15分鐘)沒有點(diǎn)擊任何頁面,是否需要重新登陸才能正常使用。
5:緩沖區(qū)溢出
沒有加密關(guān)鍵數(shù)據(jù)
分析:用戶使用緩沖區(qū)溢出來破壞web應(yīng)用程序的棧,通過發(fā)送特別編寫的代碼到web程序中,攻擊者可以讓web應(yīng)用程序來執(zhí)行任意代碼。
例:view-source:http地址可以查看源代碼
在頁面輸入密碼,頁面顯示的是*****, 右鍵,查看源文件就可以看見剛才輸入的密碼;
6.注入式漏洞
分析:用戶登錄處、不用登錄可以查看到的數(shù)據(jù)庫中的數(shù)據(jù)列表尤為重要。
例:一個(gè)驗(yàn)證用戶登陸的頁面,如果使用的sql語句為:
Select * from table A where username=’’+ username+’’and pass word….
Sql輸入
‘or 1=1――
就可以不輸入任何password進(jìn)行攻擊;
7.不恰當(dāng)?shù)漠惓L幚?/strong>
分析:程序在拋出異常的時(shí)候給出了比較詳細(xì)的內(nèi)部錯(cuò)誤信息,暴露了不應(yīng)該顯示的執(zhí)行細(xì)節(jié),網(wǎng)站存在潛在漏洞;
8.不安全的存儲
沒有加密關(guān)鍵數(shù)據(jù)
分析:帳號列表:系統(tǒng)不應(yīng)該允許用戶瀏覽到網(wǎng)站所有的帳號,如果必須要一個(gè)用戶列表,推薦使用某種形式的假名(屏幕名)來指向?qū)嶋H的帳號。
瀏覽器緩存:認(rèn)證和會話數(shù)據(jù)不應(yīng)該作為GET的一部分來發(fā)送,應(yīng)該使用POST;
例:view-source:http地址可以查看源代碼
在頁面輸入密碼,頁面不顯示 “*****”;
在頁面輸入密碼,頁面顯示的是 *****,
數(shù)據(jù)庫中存的密碼沒有經(jīng)過加密;
地址欄中可以看到剛才填寫的密碼;
右鍵查看源文件就可以看見剛才輸入的密碼;
9.目錄設(shè)置
Web 安全的第一步就是正確設(shè)置目錄。每個(gè)目錄下應(yīng)該有 index.html 或 main.html 頁面,這樣就不會顯示該目錄下的所有內(nèi)容。如果沒有執(zhí)行這條規(guī)則。那么選中一幅圖片,單擊鼠標(biāo)右鍵,找到該圖片所在的路徑"…com/objects/images"。然后在瀏覽器地址欄中手工輸入該路徑,發(fā)現(xiàn)該站點(diǎn)所有圖片的列表。這可能沒什么關(guān)系。但是進(jìn)入下一級目錄 "…com/objects" ,點(diǎn)擊 jackpot。在該目錄下有很多資料,其中有些都是已過期頁面。如果該公司每個(gè)月都要更改產(chǎn)品價(jià)格信息,并且保存過期頁面。那么只要翻看了一下這些記錄,就可以估計(jì)他們的邊際利潤以及他們?yōu)榱藸幦∫粋€(gè)合同還有多大的降價(jià)空間。如果某個(gè)客戶在談判之前查看了這些信息,他們在談判桌上肯定處于上風(fēng)。
10.關(guān)于虛擬幣(購買道具、贈送禮物、發(fā)喇叭)
1.幣為0時(shí),提示
2.幣小于所購買禮物價(jià)值,提示
3.幣等于所購買禮物價(jià)值
4.幣大于所購買禮物價(jià)值
5.幣不足購買超大值禮物(如99999)數(shù)據(jù)溢出依然贈送成功 ?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zthua/archive/2013/01/09/2853297.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: linux修改selinux
- 下一篇: delphi self 的使用