网站做登录认证怎么做?

用户名  验证码 点击登录。

后台 验证 验证码 是否正确,如果ok ,返回给前端一个cookie ,cookie 里面可以存储用户的登录状态。

原来我以为 只要存储个 简单类似  status=1 就ok 了,

实际上不是的。


如果这样存储,任何一个登录模拟器 都可以模拟了,只要添加一个cookie 就可以登陆了,

所以我们返回的cookie 要加密处理,而且这个cookie 要存到缓存里,让其他用户不可以轻易模仿。

登录状态 可以是  用户id  手机号 时间戳,甚至加密处理后的字符串。


这样其他用户想模仿就难了,首先他要知道是怎么样组合的,最后还要我们的缓存里有才行。

所以一般就模仿不了了。



我在想,我登录的时候 用户名验证码会不会被拦截,服务器返回的cookie 会不会被拦截,

实际上是可以被拦截的,但是我可以做什么呢?

我不能阻止黑客拦截我的数据,我只做的是他拦截了我的数据,但是读不懂我的数据。

但是他依然可以 拿到服务器返回的数据去登录我的账号,是的,他可以。

返回的数据他也可以拦截,这样他就可以直接看到返回的数据是什么了。


那怎么办?

https 

https 是什么,他是在双方发消息之前,建立了一条安全通道,怎么就安全了?

双方协商出了一个加密用的秘钥,而这个秘钥 中间人获取不到,所以 即使中间人获取到了加密后的登录数据然后去登录了,但是他解析不了服务器返回的数据,

所以对他来说都是没有用的数据。


那这个密钥是怎么协商出来的呢?

具体看https 


使用https 和http 对比:

我用AFN访问http下的httpbin.org/image/png
然后用Charles抓一下包,可以看到传输的图片
http的数据
然后访问HTTPS下的https://httpbin.org/image/png
再抓包,看到数据是乱码,这就是加密过后的数据
https的数据




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值