闲话验证码

本文属于科普性质,没有什么太深奥的道理。以对话的形式进行。前端

用户密码忘记了,登陆不了网站怎么办?后端

  给Ta手机发送一条短信验证码,用验证码来设定新密码。cookie

怎么知道用户的手机号码是多少?网络

  用户注册的时候,强制要求填写手机号。动画

用户乱填一个手机号怎么办?网站

  经过短信来验证。生成一个随机数看成验证码经过短信发到填写的手机号上,让用户把验证码填写回来,若是填写正确,证实手机号不是乱填的。blog

有时用户收不到验证码短信,或者隔了几分钟才收到,不能让用户一直等。怎么办?验证码

  让用户能够点个按钮从新发送验证码。登录

用户一直点重发,好比1秒点一下重发,浪费短信条数怎么办?原理

  先后端都限制,前端限制60秒后才能重发。后端限制同一下会话,或者同一个手机号60秒内不能发2条。

坏蛋用机器人每60秒“点”一次发送验证码,怎么办?

  发短信验证码以前要求用户先填图形验证码。填对了判为人,发送验证码短信,填错了判为机器人,不发验证码短信。

人也会填错图形验证码,怎么办?

  若是填错了,再换一张图形验证码给Ta填。

短信验证码有时收不到,60秒后重发,又2条都收到了,不知道以哪条为准,怎么办?

  每条验证码产生个序号,序号也出如今短信中,并在界面提示用户输入哪一个序号的验证码,这样就知道以哪条为准啦。

 

 

有些图形验证码太简单,容易被机器人识别(破解),怎么办?

  换复杂的图形验证码,好比 3维数字,汉字带旋转,动画。

(抱歉,一时找不到3D验证码,哪位知道,感谢)

有些图形验证码太复杂,人也很难识别怎么办?

  能够用拖动拼图的方式。背后的原理是对滑块的坐标与时间的关系来区分人与机器,具备对人友好、区分效果好等特色。

这么说图形验证码是用来阻止坏蛋的,坏蛋毕竟是少数,但图形验证码却给占多数的好人(好蛋)带来了麻烦。能不能改进一下,日常不要出现图形验证码,只在发现坏蛋的状况下出现?

  这个,有难度。那就一开始不出现图形验证码。你接着问。

如何发现坏蛋?

  发送了短信验证码,却没填对,或者点了从新发送,就识别为坏蛋,在从新发送时要求“填写”图形验证码。

若是是人真的没有收到短信呢?

  只能算Ta倒霉,被误判坏蛋。不过也只是让Ta“填写”图形验证码而已。

“在网络上,你没法知道对方是否是一条狗。”,坏蛋不点从新发送,每次都假装成第一次发送,怎么办?

  经过cookie跟踪Ta,就知道Ta就是刚才发送过一条短信验证码的家伙。

那就每次都先清掉cookie,再访问网页。要知道若是是机器人,访问前清掉cookie垂手可得。

  监测客户IP短期内发送超过必定条数的短信,再想发送就要求填写图形验证码。

(以上对话,纯属虚构,就是为了让你知道短信验证码和图形码证码这些东东的由来)

(如下内容涉及互联网底层,暂不适合发表,懂的人请自行脑补,或者在评论区看看可否发出来)