PHP开发-登录验证之Cookie、Session、验证码
当看到一个登录界面的时候,我们首先要思考一下整个登录逻辑是什么样的
1.客户端发送登录请求 账号 密码 |
Cookie验证
验证及跳转代码
<form action="" method="POST"> |
index.php
|
成功登录后,会出现如下界面
此时f12查看时,可以看到页面已经有cookie
Cookie安全问题
cookie由于存放在自己的浏览器中,如果别人利用xss漏洞获取到用户cookie就可以实现登录,在ctf中,我们经常使用xss漏洞提交<script>alert(document.cookie)</script>
来实现盗取cookie
Session验证
为了解决cookie的安全性问题,提出了session验证,session验证相当于打电话,登录之后相当于接了个电话,会话结束后,session重新生成,换种方式理解,就是session的生存周期远远小于cookie,session登录一次就产生一次
xxxSESSIONID--->是session验证 |
session验证
<form action="" method="POST"> |
index.php
|
验证码
验证码的出现是为了防止我们利用爆破工具进行重复登录,进而爆破密码;当然,在当今时代,验证码也能有效的防止DDOS攻击
下面展示code.php
,即验证码的代码
<?php |
登录界面
<!DOCTYPE html> |
验证码验证正确之后才会进行账号密码的检查
验证码安全问题
当验证码设置的使用周期过长时,就容易造成验证码复用的问题,即我们使用同一个验证码不断进行尝试,使用bp截取,然后改变密码进行爆破,如果验证码生成周期很长的话,就会显示验证码验证成功,进而达到绕过验证码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Borgeousのblog!
评论