认证的目的是为了认出用户是谁,授权的目的是为了决定用户能够做什么。
密码必须以不可逆的加密算法,或者单向散列函数算法,加密后储存在数据库中。
如果只有密码作为唯一的认证手段,从安全是略显不足。所以要采用多因素认证。
Session认证:密码与证书等认证手段,一般用于登录(login)过程。当登录完成后,用户访问网站的页面,不可能每次浏览器请求页面时都再使用密码认证一次。因此,当认证成功后,就需要替换一个对用户透明的凭证。这个凭证就是SessionID。
当用户登录完成后,在服务器端就会创建一个新的会话(Session),会话会保存用户的状态和相关信息。此时的认证,只需要指定是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪一个Session,浏览器需要把当前用户的SessionID告知服务器。
最常见的做法就是把SessionID加密后保存在Cookie中,因为Cookie会随着HTTP请求头发送,且受到浏览器同源策略的保护。