用户登录功能设计思路

实现安全用户登录功能浅析

1、用户登录注册
登录注册页面前端部分内容,关注的重点还是用户账号和密码在js代码里要做对应正则的匹配,这是验证的第一步,保证用户输入格式的正确性同时也从一方面减少用户向后台发送没必要的错误请求。前端向后端请求的方式使用POST
在后台接收前端传送的信息同样要经过验证正则的规则匹配步骤, 因为有可能一些人并不是通过合法的方式进行访问, 可以减少没必要的数据库查询。
关于http 和 https 因为前者是明文传输, 相对后者来说是不够安全, 有条件对于这类敏感和重要信息当然是使用https
2、用户密码安全性
密码要如何保存, 明文存入数据库?当然非常非常非常不推荐, 由于大多数客户的习惯都是使用相同的密码, 如果明文在发生信息泄露的情况下容易发生撞库的事情。所以在密码的保存上最好在后台使用“密钥 + 不可逆加密算” 如 sha1,sha256等有hash算法的不逆的加密算法进行加密后再存入数据库。

3、登录状态的保存
由于http协议是无状态的, 所以要记录用户的登录状态就要靠后台相应数据的维护来记录, 我们通常都是登录成功后在seesion中保存登录用户, 然后将用户登录通过cookie返回到客户端, 通过比对cookie和seesion信息来验证用户是否登录。

4、防止cookie被盗用
为了防患cookie被盗用的情况还要在cookie中添加token、登录序列。这两个都是使用MD5进行加密的随机字符串, 作用就是在每次登录验证时, 同时验证token和登录序列还有ip地址, 因为在每次登录验证成功时都会刷新token, 如果cookie被盗用在正主使用旧cookie时出现登录序列相同, token不同而且ip地址多次变更的情况就要记录下此用户账户异常, 并且删除后台session里的登录记录,并提醒用户。

5. 密码找回功能
因为后台密码是加密没法提供明文密码的找回, 所有可以设计通过手机短信验证或者邮箱验证, 验证成功后通过直接设置新密码的形式来进行, 对于重置密码的url地址为了安全起见要通过加入时间戳和唯一随机数来保证这个链接只在某个事件内有效, 如果在密码修改成功或者事件过期, 就把这个唯一随机数给删除,  保存密码方式同上。

6、 防止恶意攻击
最有效的手段就是加入验证码, 同时记录某个用户在或ip在某个时段内如果尝试的失败登录次数超过一定阈值就限制其在几分钟内不能继续登录。

  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值