题记:今天这篇短文写的有点晚,原因就是遇到了一些坑,加之自测的总是出现问题,所以一直处理到现在。测试转开发真的是有毒,对自己的代码总能找出各种问题,最后我索性走通主流程,细测出来的其bug就当不知道~~~~
昨天说完注册,今天我们一起来写一下登录方法,首先,登录的路由已经写好,view层也定义结束。那么我们就应该定义Login 类了,如下图所示,这里首先对session判断,如果有session能匹配到,不要登录直接输入首页域名就能判断登录成功,嗯?不明白什么是session,那知道什么是cookie吗?这边普及一下cookie和session
为什么会用到session和cookie?原因很简单,登录的操作只能在登录页面去做,别的页面不知道我是否登录成功,所以,我的页面每次都要请求发一条请求,就要带一串session,用来验证我是否对当前页面有操作权限。如图2所示我后台生产一个cookie,我们去浏览器观察,如图3,很明显能看到一条cookie存在了浏览器,而且是明文,所以很不安全,如果被非法分子获取到终于cookie,就会进行数据模拟。
我用php写了一条验证登录的脚本,我模拟了姓名为sss如图4
不出意外的居然验证通过了,所以这就危险了。如图5
session存在服务器,只会返回一串sessionid/token到cookie里面,如下图所示,我先定义一个session,并把它打印出来如图6所示,很明显,除非我把它打印出来,否则谁也不知道我存的是什么,我的cookie里面只有一串sessionid如图7。这就很安全了(当然啦,我还记得当初用jemter获取token(sessionid),然后跟上接口地址,加上post参数,也能搞事情~~~~~在这里呢,为了避免这样的问题,我们可以把请求地址的后缀也做加密处理,让用户根本不知道路由地址,就能解决这样的问题了。)
接下来我在做一个简单的验证只有当我的session里面有指定的参数,我才让你登录成功。如图8
结果显而易见,能够走到我这个判断中去,本来要写登录验证,结果闲扯了这么多,明天再讲吧~~~