“欢迎勾搭心月小姐姐,了解近期开班”
网站登录模块作为网站的入口,涉及到很多安全问题,随着互联网等技术的不断发展,对于安全的重视程度也越来越高,下面就来看一些登录模块发展的不同阶段。
第一阶段:单纯的用户名和密码
在开始阶段,或者说是互联网刚起步的时候,登录模块一般还有用户名和密码这两个字段,而且对于用户名和密码的复杂程度限制也不是很多,加密算法也是比较弱等。
第二阶段:增加有效的验证码
在这一阶段,大家对安全问题更加重视,为了使应用安全级别更高,所以验证码开始流行,在这一阶段发展的过程中,可以分为以下四个小阶段:
1.登录模块含有验证码,但是验证码只在前台进行校验,后台不做任何校验,效果并没有很明显。
2.验证码在后台校验,但是验证码的校验机制比较简单,可以通过截取其他请求读取到验证码,在进行暴力破解的时候依然可以使用读取到的验证码。
3.随着验证码的不断发展,出现了打码这类职业,这是验证码发展的新一阶段。
4.验证码机制不断增强,出现利用工具很难破解的情况,如:一个图片上有红色和黑色的字,验证码是让你打出红色的字;给你几个字,让你按照相应的顺序打出。
第三阶段:预防SQL注入等绕过漏洞
其实在登录模块不断发展,安全级别越来越高的情况下,攻击者的技术也在不断发展,SQL注入是一个很明显的注入攻击的例子,危害性很大,常见的SQL注入命令有:and ‘1’=’1’、or ‘1’=’1’等。
第四阶段:完善验证码形式,增加失败次数校验
随着暴力破解等越来越多,于是增加验证码失败次数校验这一机制流行起来,主要有两个小阶段:
1.登录失败次数字段写在Cookie里,例如把FailedTime=4写在Cookie中,这样就带来一个问题,攻击者可以通过截取Cookie来更改失败次数,也可以一直进行暴力破解。
2.接下来就是现在比较流行的两种方案了,将登录失败次数写在session中和写在数据库里,这两种各有千秋,目前都应用比较广泛。
写在session中失效比较高,比较安全,但是没有写在数据库中安全;写在数据库中很安全,但是会导致处理速度相对较慢。
领取专属 10元无门槛券
私享最新 技术干货