登录注册对于很多初级开发人员来说,可能就是简单的数据插入和查找之类的,那可能只是针对没有什么用户量或者没有涉及到资金时,勉强可以认为它不重要,但通常,登录注册其实是产品或系统中的重中之重,他是一个产品或系统的大门,安全之门。
说的这么夸张,那我们需要注意哪些问题呢。我们先从简单的入手,这里以登录为例,看看登录注册通常需要考虑的基本点,
方法一:
1)用户输入账号、密码
2)服务端根据账号密码查找是否存在该用户且数据库中的明文密码是否与传输过来的密码一样
方法二:
1)用户输入账号、密码
2)把用户的密码进行加密
3)服务端根据账号密码查找是否存在该用户且数据库中的加密密码是否与传输过来的密码一样
方法三:为了防止暴利破解穷举法尝试获取用户密码,我们加入验证码
1)用户输入账号、密码、图片验证码
2)把用户的密码进行加密
3)服务端根据账号密码查找是否存在该用户且数据库中的加密密码是否与传输过来的密码一样
方法四:为了防止暴利破解验证码或者用机器识别图片验证码,我们加入手机验证码
1)用户输入账号、密码、手机验证码
2)把用户的密码进行加密
3)服务端根据账号密码查找是否存在该用户且数据库中的加密密码是否与传输过来的密码一样
方法五:为了防止我们的手机验证码被恶意刷接口,我们需要限制用户的获取频率
1)用户输入账号、密码、手机验证码(每个手机号一定时间内只能获取几次验证码)
2)把用户的密码进行加密
3)服务端根据账号密码查找是否存在该用户且数据库中的加密密码是否与传输过来的密码一样
其他:
1)安全验证不要单独另起一个接口,需要和业务接口放在一起,不然形同虚设
2)HTTP换成HTTPS
3)安全令牌如token设置有效期
4)XSS攻击
5)CSRF攻击
禁止转载
欢迎关注我的公众号: