前端做登录验证码功能的理解

本文是一名前端新手关于登录验证码功能的理解,讨论了验证码的作用和防止机器人攻击的重要性。作者分享了实现【拖拽完成拼图】和【九宫格验证】这两种方式的难点和解决方案,最终选择了九宫格验证,因为它对前后端控制友好,实现简单。文章介绍了使用JQuery实现的前端交互逻辑,并提到后端验证的基本思路。
摘要由CSDN通过智能技术生成

前言

前端小白一名,记录日常学习生活点滴【第二周】

一、关于 前端做登录验证码功能的个人理解

做这个功能之前一定要搞清楚它的作用是什么:
【用它来确定正在访问网站的用户是人而不是一个程序】
原因:不管是何种验证码方式,都是要让程序难以判断,而让人好判断的原则设计的。

【防止用户利用机器人自动注册、登录、灌水】
原因:安全角度出发,随着网络速度的提高,如果没有一种防御机制的话,那么攻击者完全可以通过疯狂猜测尝试来获得用户的密码,还可以利用机器人自动注册、登录、灌水。想想多可怕。

一般来说,前端做登录验证就大概有几种类型吧【发验证码】【拖拽完成拼图】【随机生成字符】【输入计算结果】等等
个人的理解,纯前端的验证,没多大意思,有点自欺欺人,所以要配合后端一起验证才是最保险的。

其实这些都挺常见的,但是如果自己写,还是很费时间的,一般可以去网上找插件,这里推荐JQuery之家,很好用。

说说这次的具体需求吧: 用户觉得随机生成字符太low了,想玩个高大上的验证方式,所以我们初步定的就是【拖拽完成拼图】,这个功能对我这个菜鸡来说还是有点难度的,看了看插件的源码,相对有点复杂,前后端处理起来都不是那么友好,更要命的是,拖拽的对象和它的目标空缺都是不规则的图形,这就必须用到canvas画布来处理,果断放弃!哈哈。

然后和我的好师父商量了一下,果然有经验的程序大佬就是不一样,俺师父想了一个最简单,而且最适合前后端控制,最高大上的方法来实现验证:【九宫格验证】
即:一张大背景图,分别由9张小图拼接而成,随机生成一张倒放的图片,其余八张正常,用户只需要点击倒放的那张图片即可。
优点是:前后端都好控制,前端这边只需要实现一点交互功能比如用户选中的图片打个勾、而且点击确定按钮只需要传一个长度为9的字符串就可以了,比如倒放的是第二张图片,那么我只需要传010000000给后端就OK了,是不是很简单啊。

简单讲一下我的布局和JS的实现吧:

用的最简单的table来布局,CSS样式就不说了,反正慢慢调的问题,

<div class="box">
        <div class="lottery">
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td></td>
                    <td></td>
                    <td
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值