发表于: 2018-01-26 00:31:47

1 643


今天完成的事情:

1  重新梳理登录和注册的逻辑

原来是用户名注册,现在是 用户名+邮件/手机号 注册。用户名 邮件/手机号 是唯一字段。

 

2  用手机号注册:

多了一个短信验证的过程,这里一定要注意,手机要验证要先输入验证码,验证码越难越不容易被攻击,有人用不同ip、不同手机号来攻击,让你一直发验证码,太坑了。

验证码:

图片验证码:spring自带,防攻击不行,防君子不妨小人啊,我记得以前在一个爬虫群里,有人用图像识别,两三下搞定图片验证码,还有各种打码平台。。。。

拖动验证码(极验验证码):以哔哩哔哩为例,这个好像很流行,需要js发送一个数据到后端,数据最好加密下比如用json web token加密下:

                                             

我就会一点js,这个怕是写不出来了,但是我会copyO(_)O哈哈~

 

12306的验证码:神一般的验证码,带逻辑判断,我就想问,还有谁,还有谁,还有谁。。。。O(_)O哈哈~ ,但是知乎上https://www.zhihu.com/question/28795373,好像也不难破解

 

知乎的验证码:点击倒着的字符,或正常的字符。

更多验证码方案请看知乎连接https://www.zhihu.com/topic/19560490/hot

 

自己写一套方案,变态方案多的是,就是对用户不太友好。

知乎看了半天,还是用图片验证码吧。

 

3  用邮箱注册

如果不想经过第三方的邮箱服务,就用oracle JavaMail 自己在提供邮件服务。

或者使用Nginx的邮件模块(需要自行编译)

 

邮箱注册,也要发送一个注册连接,可以用 域名+注册路径+注册信息的jwt加密内容 作为连接,用户点击后,验证jwt加密内容。

验证码:邮箱验证码不用像手机那么严格,一般用图片验证就行。

 

4  登录,还是按密码登录

应该多一个重置密码的功能,不想写了

 

短信

短信验证码是要花钱的,免费的竟然要实名制。o(*)*)o呵呵

我还是花两块钱吧。

http://www.api51.cn/

 

邮件

我就用JavaMail了,简单点,用Nginx性能理论上更高,^_^,我就不试了。

其他第三方的api,凡是要经过它的服务器,一概不考虑,根本没有安全性可言。

 

邮件发送的是一个连接:

域名+注册的URL+加密的信息

json web token加密,加密内容为用户名,邮箱地址,操作类型(注册操作),因为如果有改密码的操作,也是这么验证。

数据用jQuery来发,听说现在jQuery用的少了,不管那么多了。先把功能实现。

 

参考:

http://blog.csdn.net/xietansheng/article/details/51673073

 

5  图片

       暂时没想好

 

明天计划的事情:

完成邮箱和手机号注册

遇到的问题:

只写了一个大概的步骤,代码待完善

收获:

验证码是道高一尺,魔高一丈,程序员何苦难为程序员。



返回列表 返回列表
评论

    分享到