一、前言
web服务中,用户输入用户名密码登入之后,后续访问网站的其他功能就不用再输入用户名和密码了。因此,身份验证引起的网络安全在所有企业级项目中都是个必须去探讨的话题,并一定针对不同的安全隐患设置相应的防范策略。
下面分享几个我从项目中总结提炼出来的一些网络安全经验。
首先我们先来巩固一下两种常用的身份验证机制:
二、两种身份验证机制
1. cookie-session机制
传统的身份校验机制为cookie-session
机制:
用户浏览器访问web网站,输入用户名密码
服务器校验用户名密码通过之后,生成sessonid并把sessionid和用户信息映射起来保存在服务器
服务器将生成的sessionid返回给用户浏览器,浏览器将sessionid存入cookie
此后用户对该网站发起的其他请求都将带上cookie中保存的sessionid
服务端把用户传过来的sessionid和保存在服务器的sessionid做对比,如果服务器中有该sessionid则代表身份验证成功
这种方式存在以下几个问题:
代码安全机制不完善,可能存在CSRF漏洞
服务端需要保存sessionid与客户端传来的sessionid做对比,当服务器为集群多机的情况下,需要复制sessionid,在多台集群机器之间共享
如果需要单点登入,则须将sess