暴力破解的防范措施和防范误区
防范措施
一个简单的token实例
一般的做法:
- 将token以’type=’hidden’的形式输出在表单中
- 在提交的认证的时候一起提交,并在后台对其校验
但,****由于token输出在了前端源码,容易被获取,因此并不能防止爆破。一般token防止csrf上会好很多
环境:老三样
演示:
查看F12能找到隐藏的token
token是由于页面被打开的同时,后端收到请求后会生成一个token放到session里并输出到表单里,目的是当你输入用户名和密码时,会连同用户名和密码以及token一起进行验证(每次刷新页面都会刷新token
源码分析:
先判断是否提交用户名和密码,再去判断token是否和session中的一致,如果通过才会去验证用户名和密码
每次的token就是由set_token函数生成的,查看函数内容
先判断token是否存在,如果存在便销毁,然后再去生成一个新的token,然后从指定的范围里生成一个随机数再赋值给session中
然后就可以就从后端输出到前端,这样就实现了每次提交用户名密码还验证token
但!这样并不能防止暴力破解,因为已经把token值放在前端代码供我们随意使用了
我们只需要每次都写一个脚本获取token的值,再进行暴力破解就行
over.