`

图形验证码最佳攻略2

阅读更多

下面是注册

如果是手机用户注册,需要发送短信验证码

 说明:

发送图形验证码是为了拦截发送短信的.但是不拦截"注册帐号"

但是,用户体验很别扭,因为图形验证码很显然是错误的,但是却可以注册成功.

 如果点击注册帐号 ,也要校验图形验证码,那就让用户输入两次图形验证码,显然不是很人性化

注意:注册时发送短信每次都需要输入图形验证码,而不是发送3次短信才要输入.

那么如何解决这个问题呢?

把注册拆分为两步:

第一步:发送短信验证码

 

 

第二步:设置密码和用户名

 

这样达到的目的:

(1)可以通过图形验证码拦截发送手机短信;

(2)注册流程只需要输入一次图形验证码

 

 

每次校验图形验证码,都刷新后台的图形验证码

 /***
     * 校验图形验证码
     *
     * @param request
     * @param response
     * @param authImage
     * @return : 返回null则表示校验通过
     */
    public WapResponseDto verifyImageCode(HttpServletRequest request,
                                          HttpServletResponse response,
                                          String authImage) {
        //检查是否需要校验图形验证码
        WapResponseDto wapResponseDto = null;
        if (isNeedImageCode(request, response)) {//需要图形验证码
            String authCode1 = getAuthCode(request, response);
            if (!VerifyCodeUtils.checkAuthImageCode(authImage, authCode1)) {
                wapResponseDto = new WapResponseDto();
                wapResponseDto.setResult(false);
                wapResponseDto.setErrorFieldName("authImage");
                wapResponseDto.setErrorMessage("图形验证码错误,请重新输入");
                wapResponseDto.setNeedAuthImage(true);
                resetAuthImageCode(request, response);//不管是否校验通过,都会刷新服务器端的图形验证码
                return wapResponseDto;
            }
        }
        resetAuthImageCode(request, response);
        return null;
    }

 

 应用:

 

 

 

 

现在需要定一个图形验证码什么刷新的规则 

问题:获取图形验证码图片时,会刷新吗?

会,并且必须刷新

如果不刷新的话,每次返回的图片都会显示相同的验证码

 

问题:校验完图形验证码之后,需要刷新服务器端的图形验证码吗?

不仅要刷新前端的图形验证码图片,而且还要刷新服务器端的图形验证码

如果不刷新服务器端的图形验证码,就会有一个漏洞:

黑客获取到一个图形验证码之后,使用工具不断的访问,这样的话,图形验证码每次都能校验通过.

 

 

 

  • 大小: 37.6 KB
  • 大小: 19.9 KB
  • 大小: 20.3 KB
  • 大小: 102.7 KB
  • 大小: 109.1 KB
分享到:
评论

相关推荐

    ios--图形验证码

    在iOS开发中,图形验证码(Captcha)是一种重要的安全机制,用于防止自动化程序或机器人进行恶意操作,如防止批量注册、频繁登录等。本项目提供了一种自定义的本地实现方式,无需依赖外部库,方便集成到你的iOS应用...

    java生成图形验证码 带详细注释 拷贝即用 兼容linux系统 含字体

    验证码最佳宽高计算公式:字体大小和图片高度相等,图片宽度=图片高度×验证码长度×0.75 由于这里使用的不是本地字体 所以直接丢到linux系统也能正常运行 验证码可以输入中文 前提是你的字体支持中文

    JSP 图形验证码 汉字

    ### JSP 图形验证码汉字实现方法 在当前的网络环境中,图形验证码被广泛应用于网站登录、表单提交等环节,以防止恶意攻击和自动化程序的滥用。本文将深入探讨如何在JSP环境下实现带有汉字的图形验证码。 #### 一、...

    ASP图形验证码程序

    ASP图形验证码程序是一种用于网站身份验证的安全机制,它主要用于防止自动化的机器人或恶意软件进行诸如注册、登录等操作。在本程序中,DEMO提供了基本的功能实现,用户可以根据自己的需求调整参数以适应不同的应用...

    使用python+robot framework识别图片验证码

    在IT行业中,自动化测试是提升效率的关键之一,特别是在网页应用中,验证码的识别是一个常见的挑战。本篇将详细讲解如何使用...在实际项目中,还需要根据验证码的具体特点和需求进行定制化处理,以确保最佳的识别效果。

    爱码验证码飞Q验证码手机验证码模块

    “爱码验证码”是一个专业的验证码服务提供商,它提供了多种类型的验证码解决方案,包括图形验证码、语音验证码和短信验证码。它的服务特点是高效、稳定,能够有效防止机器人和恶意攻击,同时保证用户体验。通过集成...

    gt-java-sdk(极限验证码)

    - 动态验证码生成:通过复杂的图形算法生成难以被机器识别的验证码图片。 - 用户行为分析:集成行为识别技术,分析用户操作习惯,增强验证安全性。 - 友好的用户体验:平衡安全与易用,确保正常用户能快速准确地...

    PHP实现生成带背景的图形验证码功能

    图形验证码的目的是区分用户是计算机还是人类,通过用户输入图形验证码的正确性来防止机器进行自动化操作,比如恶意注册、自动登录攻击等。 在PHP中生成带背景的图形验证码主要包括以下步骤: 1. 产生一张png格式...

    vue3-captcha(vue3行为验证码)

    Vue3-Captcha组件利用行为识别技术,要求用户执行特定的交互动作,如拖动滑块、点击随机出现的图形等,以此来验证用户是真人而非机器。这种验证码方式相比传统的文字输入或图片识别验证码,用户体验更佳,同时也提高...

    短信验证码模型网页填写

    此外,使用图形验证码、设备指纹等多因素认证方式也能增强系统的安全性。 总的来说,短信验证码模型网页填写涉及的技术和安全措施是构建可靠网络服务的重要组成部分,但同时也需要防范其可能带来的安全风险和滥用...

    短信验证码

    - 二次验证:结合其他验证方式,如图形验证码或密保问题,提高安全性。 - 防止重放攻击:验证一次后立即失效,防止同一验证码被多次使用。 - 用户隐私保护:确保手机号码等敏感信息的安全存储和传输。 总的来说,...

    简单规则BMP验证码自动验证

    将这些模板与二值化和去躁后的验证码图像进行比较,找到最佳匹配,从而识别出每个验证码字符。 验证码的识别通常需要考虑到字符的旋转、大小变化以及可能的扭曲。在实际应用中,可能会使用更复杂的方法,如形态学...

    正方系统3000张验证码

    由于这些验证码未经任何图形操作,如过滤波或切割,因此它们保留了原始的复杂性和多样性,能更真实地模拟实际环境中的识别挑战。 在深度学习领域,验证码识别是一个经典的应用场景,常被用于训练卷积神经网络(CNN...

    5款实用的jQuery验证码插件

    对于那些希望避免图形验证码的网站,Math Captcha提供了一个基于数学问题的验证方法。用户需要解决简单的算术问题来证明他们是人类。这种插件利用jQuery的动态效果和事件处理,使得验证过程更加友好。 这些jQuery...

    asp.net 验证码生成(含源码)

    2. **图形化验证码**:验证码通常以图片形式显示,以便用户能看到并输入字符。在ASP.NET中,我们可以使用`System.Drawing`命名空间中的类来创建和操作图像。例如,`Bitmap`类用于创建图像,`Random`类生成随机数,`...

    VB验证码程序

    8. **代码优化**:为了提高验证码的安全性和效率,VB代码应遵循最佳实践,例如避免硬编码敏感信息,确保内存管理得当,以及优化图像生成算法。 在VB中实现验证码程序需要对图形处理、网络通信和用户交互有一定的...

    IOS验证码

    2. **图像处理**:如果采用图形验证码,可以使用Core Graphics或UIKit框架来绘制扭曲的文字,添加噪声,以及调整颜色和透明度,使验证码难以被OCR(光学字符识别)技术破解。 3. **存储验证码**:生成的验证码应...

    Desktop_php实现google验证码_

    首先,Google Authenticator通常涉及到的是时间同步的一次性密码(TOTP)算法,而不是图形验证码。时间同步的一次性密码是基于当前时间戳生成的一组动态密码,每30秒或60秒更换一次。这种验证方式通常用于两步验证,...

    SpringSecurity实现表单安全登录、图形验证的校验、记住我时长控制机制、第三方登录

    本主题将深入探讨如何使用SpringSecurity实现表单安全登录、图形验证码的验证、记住我功能的时长控制以及整合第三方登录。 **表单安全登录** 在SpringSecurity中,我们可以方便地配置表单登录。首先,我们需要定义...

    JSP编程验证码登陆系统

    2. **验证码生成** 验证码的生成通常包括随机字符生成、扭曲图片、颜色填充等步骤。在JSP中,可以使用Java的`Random`类生成随机数字或字母,然后通过Java 2D图形库绘制到图片上。扭曲效果可以通过旋转、缩放、倾斜...

Global site tag (gtag.js) - Google Analytics