For investors

股價(jià):

5.36 美元 %
認(rèn)識(shí)達(dá)內(nèi)從這里開(kāi)始

認(rèn)真做教育 專(zhuān)心促就業(yè)

解決WEB性能測(cè)試中的驗(yàn)證碼問(wèn)題

現(xiàn)在越來(lái)越多的網(wǎng)站為了安全性或是防止Spam的侵害,采用了驗(yàn)證碼的校驗(yàn)技術(shù)。簡(jiǎn)單地說(shuō),驗(yàn)證碼就是在進(jìn)行登錄或是內(nèi)容提交的時(shí)候,頁(yè)面上會(huì)隨機(jī)出現(xiàn)一個(gè)人工可識(shí)別,但機(jī)器不可識(shí)別的驗(yàn)證字符串(一般是采用背景、扭曲等方式產(chǎn)生的圖片),要求登錄或是提交內(nèi)容時(shí)同時(shí)輸入這個(gè)驗(yàn)證碼。

驗(yàn)證碼可以有效防止對(duì)口令的刺探和所謂的網(wǎng)絡(luò)推廣軟件帶來(lái)的大量的Spam內(nèi)容,目前已經(jīng)被許多Internet或是Intranet應(yīng)用接受為標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。但對(duì)性能測(cè)試來(lái)說(shuō),這種驗(yàn)證碼又帶來(lái)了很大的問(wèn)題。

最突出的問(wèn)題是,性能測(cè)試工具本身是自動(dòng)化工具,由于這種驗(yàn)證碼采用的是“防止自動(dòng)化工具嘗試”的方法,因此,在錄制了腳本之后會(huì)發(fā)現(xiàn),很難對(duì)腳本進(jìn)行調(diào)整,以使其適應(yīng)驗(yàn)證碼驗(yàn)證的需要。已經(jīng)不止一次有人提到這個(gè)問(wèn)題,并詢(xún)問(wèn)有沒(méi)有較好的解決方案。

對(duì)這個(gè)問(wèn)題,我個(gè)人的看法是,基本上可以考慮從三個(gè)途徑來(lái)解決該問(wèn)題:

1、第一種方法,也是最容易想到的,在被測(cè)系統(tǒng)中暫時(shí)屏蔽驗(yàn)證功能,也就是說(shuō),臨時(shí)修改應(yīng)用,無(wú)論用戶(hù)輸入的是什么驗(yàn)證碼,都認(rèn)為是正確的。這種方法最容易實(shí)現(xiàn),對(duì)測(cè)試結(jié)果也不會(huì)有太大的影響(當(dāng)然,這種方式去掉了“驗(yàn)證驗(yàn)證碼”這個(gè)環(huán)節(jié),不過(guò)這個(gè)環(huán)節(jié)本來(lái)就很難成為系統(tǒng)性能瓶頸)。但這種方法有一個(gè)致命的問(wèn)題:如果被測(cè)系統(tǒng)是一個(gè)實(shí)際已上線(xiàn)的系統(tǒng),屏蔽驗(yàn)證功能會(huì)對(duì)已經(jīng)在運(yùn)行的業(yè)務(wù)造成非常大的安全性的風(fēng)險(xiǎn),因此,對(duì)于已上線(xiàn)的系統(tǒng)來(lái)說(shuō),用這種方式就不合適了;

2、第二種方法,在第一種方法的基礎(chǔ)上稍微進(jìn)行一些改進(jìn)。第一種方法帶來(lái)了很大的安全性問(wèn)題,那么我們可以考慮,不取消驗(yàn)證,但在其中留一個(gè)后門(mén),我們?cè)O(shè)定一個(gè)所謂的“萬(wàn)能驗(yàn)證碼”,只要用戶(hù)輸入這個(gè)“萬(wàn)能驗(yàn)證碼”,我們就驗(yàn)證通過(guò),否則,還是按照原先的驗(yàn)證方式進(jìn)行驗(yàn)證。這種方式仍然存在安全性的問(wèn)題,但由于我們可以通過(guò)管理手段將“萬(wàn)能驗(yàn)證碼”控制在一個(gè)小的范圍內(nèi),而且只在性能測(cè)試期間保留這個(gè)小小的后門(mén),相對(duì)第一種方法來(lái)說(shuō),在安全性方面已經(jīng)有較大的改進(jìn)了;

3、如果安全性對(duì)應(yīng)用來(lái)說(shuō)真的是至關(guān)重要的,不容許有一絲一毫的閃失,那我們還可以用更進(jìn)一步的方法來(lái)處理這個(gè)問(wèn)題。一般的性能測(cè)試工具(MI的LR、Seague的Silk performer等)都能夠調(diào)用外部的DLL或是組件接口,因此,可以考慮獲得“驗(yàn)證碼驗(yàn)證”部分的實(shí)現(xiàn),寫(xiě)一個(gè)驗(yàn)證碼獲取的DLL,在測(cè)試腳本中進(jìn)行調(diào)用即可。

除了這三種方法以外,可能還會(huì)有其他的方法存在,也希望各位能提供一些其他的思路。在我的實(shí)踐中,第二種方法用得比較多,對(duì)未上線(xiàn)系統(tǒng)系統(tǒng)的內(nèi)部性能測(cè)試,有時(shí)候也用第一種方法。但要提醒的是,如果針對(duì)的是已上線(xiàn)系統(tǒng),無(wú)論用哪種方法,測(cè)試完成后,都必須立刻將應(yīng)用恢復(fù),并對(duì)系統(tǒng)進(jìn)行一次安全審計(jì),以免在測(cè)試期間被他人入侵。第三種方法用得比較少,而且具體上還依賴(lài)于驗(yàn)證組件是否能提供這樣的接口。

【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!

相關(guān)推薦
最新資訊
免費(fèi)試聽(tīng)課程
  • 全部課程
  • IT課程
  • 設(shè)計(jì)課程
  • 運(yùn)營(yíng)課程
Free courses
最新開(kāi)班時(shí)間
  • 北京
  • 上海
  • 廣州
  • 深圳
  • 南京
  • 成都
  • 武漢
  • 西安
  • 青島
  • 天津
  • 杭州
  • 重慶
  • 哈爾濱
  • 濟(jì)南
  • 沈陽(yáng)
  • 合肥
  • 鄭州
  • 長(zhǎng)春
  • 蘇州
  • 長(zhǎng)沙
  • 昆明
  • 太原
  • 無(wú)錫
  • 石家莊
  • 南寧
  • 佛山
  • 珠海
  • 寧波
  • 保定
  • 呼和浩特
  • 洛陽(yáng)
  • 煙臺(tái)
  • 運(yùn)城
  • 濰坊
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
預(yù)約申請(qǐng)?jiān)嚶?tīng)課
收起