For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
現(xiàn)在越來越多的網(wǎng)站為了安全性或是防止Spam的侵害,采用了驗(yàn)證碼的校驗(yàn)技術(shù)。簡單地說,驗(yàn)證碼就是在進(jìn)行登錄或是內(nèi)容提交的時候,頁面上會隨機(jī)出現(xiàn)一個人工可識別,但機(jī)器不可識別的驗(yàn)證字符串(一般是采用背景、扭曲等方式產(chǎn)生的圖片),要求登錄或是提交內(nèi)容時同時輸入這個驗(yàn)證碼。
驗(yàn)證碼可以有效防止對口令的刺探和所謂的網(wǎng)絡(luò)推廣軟件帶來的大量的Spam內(nèi)容,目前已經(jīng)被許多Internet或是Intranet應(yīng)用接受為標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。但對性能測試來說,這種驗(yàn)證碼又帶來了很大的問題。
最突出的問題是,性能測試工具本身是自動化工具,由于這種驗(yàn)證碼采用的是“防止自動化工具嘗試”的方法,因此,在錄制了腳本之后會發(fā)現(xiàn),很難對腳本進(jìn)行調(diào)整,以使其適應(yīng)驗(yàn)證碼驗(yàn)證的需要。已經(jīng)不止一次有人提到這個問題,并詢問有沒有較好的解決方案。
對這個問題,我個人的看法是,基本上可以考慮從三個途徑來解決該問題:
1、第一種方法,也是最容易想到的,在被測系統(tǒng)中暫時屏蔽驗(yàn)證功能,也就是說,臨時修改應(yīng)用,無論用戶輸入的是什么驗(yàn)證碼,都認(rèn)為是正確的。這種方法最容易實(shí)現(xiàn),對測試結(jié)果也不會有太大的影響(當(dāng)然,這種方式去掉了“驗(yàn)證驗(yàn)證碼”這個環(huán)節(jié),不過這個環(huán)節(jié)本來就很難成為系統(tǒng)性能瓶頸)。但這種方法有一個致命的問題:如果被測系統(tǒng)是一個實(shí)際已上線的系統(tǒng),屏蔽驗(yàn)證功能會對已經(jīng)在運(yùn)行的業(yè)務(wù)造成非常大的安全性的風(fēng)險(xiǎn),因此,對于已上線的系統(tǒng)來說,用這種方式就不合適了;
2、第二種方法,在第一種方法的基礎(chǔ)上稍微進(jìn)行一些改進(jìn)。第一種方法帶來了很大的安全性問題,那么我們可以考慮,不取消驗(yàn)證,但在其中留一個后門,我們設(shè)定一個所謂的“萬能驗(yàn)證碼”,只要用戶輸入這個“萬能驗(yàn)證碼”,我們就驗(yàn)證通過,否則,還是按照原先的驗(yàn)證方式進(jìn)行驗(yàn)證。這種方式仍然存在安全性的問題,但由于我們可以通過管理手段將“萬能驗(yàn)證碼”控制在一個小的范圍內(nèi),而且只在性能測試期間保留這個小小的后門,相對第一種方法來說,在安全性方面已經(jīng)有較大的改進(jìn)了;
3、如果安全性對應(yīng)用來說真的是至關(guān)重要的,不容許有一絲一毫的閃失,那我們還可以用更進(jìn)一步的方法來處理這個問題。一般的性能測試工具(MI的LR、Seague的Silk performer等)都能夠調(diào)用外部的DLL或是組件接口,因此,可以考慮獲得“驗(yàn)證碼驗(yàn)證”部分的實(shí)現(xiàn),寫一個驗(yàn)證碼獲取的DLL,在測試腳本中進(jìn)行調(diào)用即可。
除了這三種方法以外,可能還會有其他的方法存在,也希望各位能提供一些其他的思路。在我的實(shí)踐中,第二種方法用得比較多,對未上線系統(tǒng)系統(tǒng)的內(nèi)部性能測試,有時候也用第一種方法。但要提醒的是,如果針對的是已上線系統(tǒng),無論用哪種方法,測試完成后,都必須立刻將應(yīng)用恢復(fù),并對系統(tǒng)進(jìn)行一次安全審計(jì),以免在測試期間被他人入侵。第三種方法用得比較少,而且具體上還依賴于驗(yàn)證組件是否能提供這樣的接口。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!