如何防止BotDetect captcha中的captcha自动更改

本文关键字:captcha 中的 何防止 BotDetect | 更新日期: 2023-09-27 17:51:02

我已经在我的asp.net应用程序中实现了botdetect captcha。但是每当页面中发生回发时,验证码就会发生变化。我怎样才能不让它改变呢?

Asax页面:

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

cs页面:

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

如何防止BotDetect captcha中的captcha自动更改

你不能。我将在下面写下为什么不(1),以及我认为你应该做什么(2):

(1)为了安全起见,BotDetect Captcha只允许每个Captcha码进行一次验证尝试。

如果我们允许多次重试解决相同的验证码,这将大大降低验证码的安全性,因为机器人可以暴力破解不同的代码值,直到他们最终得到正确的答案。此外,编写一个使用OCR技术绕过验证码的机器人要容易得多:例如,如果它可以识别图像中的五个数字中的两个,那么它只需要暴力破解剩下的三个数字。

所以失败的验证尝试(无论是在客户端还是服务器端)总是使当前的验证码无效。成功的服务器端验证也会删除代码(所以我们防止有人只解决了一个验证码,然后在多个提交中重复使用它)。

(2)我猜你的问题的起源是处理在你的网页表单的另一个(非验证码)字段失败的验证。在这种情况下,您希望避免使用两次验证码来折磨您的访问者。

我们完全同意这一点,但解决方案不是改变Captcha行为,而是完全删除Captcha一旦它被解决。你可以在这里找到更多细节:http://captcha.com/doc/aspnet/faq/captcha-validation-security-faq.html validation-repeat

希望对你有帮助。

马里奥,验证码Inc .