Yii2.0提供了多种验证码的使用方法,常见的包括以下几种:
图片验证码:使用 yii\captcha\CaptchaAction 类生成验证码图片,用户在表单中输入验证码进行验证。底层原理是在服务器端生成一张验证码图片,并在用户请求时输出该图片,同时在服务器端存储该验证码值,当用户提交表单时对验证码进行验证。
音频验证码:使用 yii\captcha\CaptchaAction 类生成验证码音频,用户在表单中听取验证码进行验证。底层原理与图片验证码类似,只是输出的是音频文件而不是图片文件。
Google reCAPTCHA:使用 yii\captcha\ReCaptcha 类或 yii\captcha\ReCaptchaValidator 类实现 Google reCAPTCHA 验证。该验证方式需要从 Google 获取站点密钥和密钥对,以便将验证码与 Google 进行交互验证。底层原理是通过向 Google 发送请求并接收响应来验证验证码是否正确。
算术验证码:使用 yii\captcha\CaptchaAction 类生成一个简单的算术问题,例如“2+3=?”,用户在表单中输入答案进行验证。底层原理与图片验证码类似,只是生成的是一个算术问题而不是图片文件。
以上四种验证码方式在底层实现上略有不同,但都是通过在服务器端生成一个验证码值,将其与用户输入的值进行比较以进行验证。同时,为了防止机器人攻击和恶意请求,这些验证码通常包括一些随机化和加密的操作,以增加破解的难度。