(以下内容全部由外部资源总结)
验证方式
一、Basic:
http1.0的认证方法,需要提供用户名密码认证,并用base64进行编码,认证后才可访问,浏览器弹出登录窗口输入用户名后用base64进行编码,浏览器会在http报文头部加入base64编码内容,服务器解析出来并认证通过才可继续访问,
缺点:
1.无状态的,服务器每次要认证信息,即使已经认证过了
2.传输安全性不足,认证用的base64进行编码,明文传输很容易对报文截取并盗用认证信息
二、Digest:
主要是为了解决Basic模式的安全问题,用来替代Basic模式采用了response认证模式,依旧弹出对话框输入用户名密码,会对:用户名、密码、http请求方法、被请求资源的url 进行组合后发送给服务器,服务器获取到http报文相关信息后,从中获取到用户名跟密码,同样对用户名、密码、http请求方法、被请求资源的url等组合进行md5运算,计算的结果进行比较,结果相同就认证通过
其实通过hash算法,对通信双方身份的认证非常常见,不必把包含密码的信息对外传输,只需要把这些密码信息,加入一个对方给定的随机值,然后计算出hash值传输给对方就可以认证身份,这种模式避免了密码在网络上明文传输,
缺点:报文还是会被攻击者拦截到然后获取相关资源
三、X.509:
是一种非常通用的证书格式,所有的X.509证书都包含:版本号、证书持有人的公钥、证书的序列号 。证书的序列号是由每一个证书分配的唯一编号数字型编号,证书取消后实际上放入由ca签发的黑名单列表中,这也是序列号唯一的原因,X.509还包含主题信息、证书的有效期、认证的签名、签名的算法等等,目前被广泛应用
四、LDAP:
是轻量级的目录访问协议,为了解决需要初始化很多密码,大量密码的管理,还有公司增加内部服务的时候,管理员需要为大量员工初始化新的账户信息,为所有软件提供统一的认证机制,改变原有的认证策略,使需要认证的策略都通过LDAP去认证,或者所有信息都存储在LDAP server中,终端用户使用公司内部服务的时候,都需要LDAP服务器的认证,每个员工只需要进入管理员提供的web节目,修改自己在LDAP server中的信息即可,常适用于大公司
五、Form 表单验证,不多做解释