現在越來越多的**為了安全性或是防止spam的侵害,採用了驗證碼的校驗技術。簡單地說,驗證碼就是在進行登入或是內容提交的時候,頁面上會隨機出現乙個人工可識別,但機器不可識別的驗證字串(一般是採用背景、扭曲等方式產生的),要求登入或是提交內容時同時輸入這個驗證碼。
驗證碼可以有效防止對口令的刺探和所謂的網路推廣軟體帶來的大量的spam內容,目前已經被許多internet或是intranet應用接受為標準的實現方式。但對效能測試來說,這種驗證碼又帶來了很大的問題。
最突出的問題是,效能測試工具本身是自動化工具,由於這種驗證碼採用的是「防止自動化工具嘗試」的方法,因此,在錄製了指令碼之後會發現,很難對指令碼進行調整,以使其適應驗證碼驗證的需要。已經不止一次有人提到這個問題,並詢問有沒有較好的解決方案。
對這個問題,我個人的看法是,基本上可以考慮從三個途徑來解決該問題:
1、第一種方法,也是最容易想到的,在被測系統中暫時遮蔽驗證功能,也就是說,臨時修改應用,無論使用者輸入的是什麼驗證碼,都認為是正確的。這種方法最容易實現,對測試結果也不會有太大的影響(當然,這種方式去掉了「驗證驗證碼」這個環節,不過這個環節本來就很難成為系統效能瓶頸)。但這種方法有乙個致命的問題:如果被測系統是乙個實際已上線的系統,遮蔽驗證功能會對已經在執行的業務造成非常大的安全性的風險,因此,對於已上線的系統來說,用這種方式就不合適了;
2、第二種方法,在第一種方法的基礎上稍微進行一些改進。第一種方法帶來了很大的安全性問題,那麼我們可以考慮,不取消驗證,但在其中留乙個後門,我們設定乙個所謂的「萬能驗證碼」,只要使用者輸入這個「萬能驗證碼」,我們就驗證通過,否則,還是按照原先的驗證方式進行驗證。這種方式仍然存在安全性的問題,但由於我們可以通過管理手段將「萬能驗證碼」控制在乙個小的範圍內,而且只在效能測試期間保留這個小小的後門,相對第一種方法來說,在安全性方面已經有較大的改進了;
3、如果安全性對應用來說真的是至關重要的,不容許有一絲一毫的閃失,那我們還可以用更進一步的方法來處理這個問題。一般的效能測試工具(mi的lr、seague的silk performer等)都能夠呼叫外部的dll或是元件介面,因此,可以考慮獲得「驗證碼驗證」部分的實現,寫乙個驗證碼獲取的dll,在測試指令碼中進行呼叫即可。
除了這三種方法以外,可能還會有其他的方法存在,也希望各位能提供一些其他的思路。在我的實踐中,第二種方法用得比較多,對未上線系統系統的內部效能測試,有時候也用第一種方法。但要提醒的是,如果針對的是已上線系統,無論用哪種方法,測試完成後,都必須立刻將應用恢復,並對系統進行一次安全審計,以免在測試期間被他人入侵。第三種方法用得比較少,而且具體上還依賴於驗證元件是否能提供這樣的介面。
Web開發中如何解決中文亂碼問題
亂碼問題永遠是web初學者的乙個攔路虎,如果要避免亂碼問題。需要了解亂碼問題的成因。首先介紹幾種常見的編碼。utf 8 8 bit unicode transformation format utf 8 是一種針對unicode的可變長度字元編碼,也是一種字首碼。它可以用來表示unicode標準中的...
如何解決Azkaban中web頁面訪問失敗
如何解決azkaban中web頁面訪問失敗 步驟如下 1.細心檢查配置檔案 1 進入azkaban web伺服器安裝目錄 conf目錄,檢視azkaban.properties檔案是否正確。2 在azkaban web伺服器安裝目錄 conf目錄,修改azkaban users.xml 檔案,增加管...
如何解決報表關聯計算中的效能問題
報表開發過程中經常要在報表中完成資料關聯計算,有時為了降低報表製作複雜度,會將關聯關係放到可視的報表模板中完成 而有時則必須在報表中完成關聯,如多資料來源 異構資料來源的情況。在報表中做關聯往往導致報表效率不高,計算過慢,從而引發效能問題。為此,潤幹報表提供了高效能資料關聯方式 需要結合集算器實現 ...