3.6. 图片验证码
图片验证码的作用
为了保证短信验证码接口不会被攻击,我们使用 throttle
中间件限制了接口访问频率,但是依旧不安全。虽然限制了 IP,但是攻击者依然可以使用大量代理 IP 进行攻击。这个时候,就需要增加一些机器无法识别,或者说识别成本高的人为因素 —— 验证码。
回忆一下『知乎APP』完整的注册流程,我们可以在发送短信验证码之前,增加一步图片验证码。
1. 安装 gregwar/captcha
图片验证码接口的流程是:
- 生成图片验证码
- 生成随机的 key,将验证码文本存入缓存。
- 返回随机的 key,以及验证码图片
Larabbs 项目中已经安装了 mews/captcha,对于网页应用来说,这个组件使用起来十分方便,但是它依赖 session,而且没法获取和设置验证码文本,不适用于 API 的用例。在 API 的开发中,我们将选择使用 gregwar/captcha 来完成图片验证码的功能。