2014-03-19 59 views
0

我在我的asp.net應用程序中實現了botdetect驗證碼。但是,無論何時在頁面中的回發時間,驗證碼都會發生變化。我怎樣才能防止它改變。如何防止在BotDetect驗證碼中自動更改驗證碼?

ASAX頁:

<botDetect:Captcha ID="bdCaptcha" runat="server" /> 

.CS頁:

protected void Page_PreRender(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       bdCaptcha.UserInputClientID = txtCaptchaInput.ClientID; 
      } 
     } 

我怎麼能做到這一點。

回答

0

你不能。 (1),我相信你應該做的(2):

(1)BotDetect驗證碼每個驗證碼只允許一個驗證嘗試用於安全目的。

如果我們允許在解決相同驗證碼多次重試,它會顯著降低驗證碼安全性,因爲機器人可以只是蠻力不同的代碼值,直到他們最終得到它的權利。另外,編寫一個使用OCR技術來繞過驗證碼的機器人會容易得多:例如,如果它能夠識別圖像中五個數字中的兩個,那麼就只能對其餘三個數字進行暴力破解。

所以失敗的驗證嘗試(無論是在客戶端或服務器端)始終無效當前圖形驗證碼。成功的服務器端驗證也會移除代碼(所以我們可以防止有人解決只有一個驗證碼,然後繼續重複使用它的多個提交)。

(2)我猜你的問題的由來是處理失敗在你的網頁表單的另一個(非驗證碼)字段驗證。在這種情況下,您希望避免通過兩次解決驗證碼來折磨您的訪客。

我們完全同意這種說法,但解決方案是不改變驗證碼的行爲,但一旦解決,以徹底清除驗證碼。在這裏你可以找到更多的細節: http://captcha.com/doc/aspnet/faq/captcha-validation-security-faq.html#validation-repeat

希望這會有所幫助。

馬里奧, 驗證碼公司

+0

其實我並不想這樣做,正如我剛纔問的這個問題解決我所面臨由於驗證碼的問題。 –

+0

由於您是來自Captcha Inc的人,我說的是,當我們沒有使用InProc會話(也可能是其他原因)時,會話Id會導致不正確的驗證碼圖像,並在Chrome和Firefox瀏覽器的情況下糾正Captcha聲音。 –