WEB验证的过去现在与未来

本文将以时间维度介绍一些目前常见的Web验证方法以及相关协议 , 带你了解Web验证的过去、现在与未来 。
传统身份验证方式

WEB验证的过去现在与未来

文章插图
 
 
过去普遍的做法可能是这样的
注册
  • 前端注册页面填写用户名和密码表单 , 发送给后台服务器
  • 后台服务器将接收到的用户名和密码进行加密并插入到数据库 , 然后回馈是否成功的信息给前端页面 。
登录
  • 前端登录页面填写用户名和密码表单 , 发送给后台服务器
  • 后台服务器将接收到的用户名和密码进行加密后与数据库储存信息进行对比 , 如果账号密码一致则返回给前端登录成功信息 , 不一致则返回失败信息 。
这种做法存在普遍问题
  • 当登录环境不安全时 , 输入密码时可能被监控
  • 发送密码到服务器的过程中可能被劫持
  • 密码存储在数据库如果被黑客攻击可能造成大量密码泄露
这种做法最大的问题在于你需要输入密码
  • 人们通常使用一个密码应对所有账号 , 而攻击者获取密码的方式又数不胜数 , 一旦在某个疏于防备的瞬间泄露了一个密码 , 那么该用户所有账号都将面临巨大安全风险
第三方登录方式
WEB验证的过去现在与未来

文章插图
 
 
现在 , 越来越多的站点开放了第三方登录的功能 , 使得账号密码登录不再是唯一的身份验证方式 , 在可以进行第三方登录的站点 , 人们通常选择使用第三方登录的方式进行身份验证 。实现第三方登录有两种协议 , 分别为OpenID开放认证协议与OAuth开放授权协议
OpenID和OAuth完全是为了两种不同的需求而生 , OpenID的目标是为了帮助网站确认一个用户的身份  , OAuth的目标是为了授权第三方在可控范围下访问用户资源 , OAuth有两个版本 , OAuth1.0由于其实现较为复杂 , 已经基本被OAuth2.0所取代 , 以下分别对两种协议进行讲解
OpenID 开放认证协议
 
WEB验证的过去现在与未来

文章插图
 
 
定义
  • OpenID是一个去中心化的网上身份认证系统 。对于支持OpenID的网站 , 用户不需要记住像用户名和密码这样的传统验证标记 。取而代之的是 , 他们只需要预先在一个作为OpenID身份提供者(identity provider, IdP)的网站上注册 , 比如google 。OpenID是去中心化的 , 任何网站都可以使用OpenID来作为用户登录的一种方式 , 任何网站也都可以作为OpenID身份提供者 。OpenID既解决了问题而又不需要依赖于中心性的网站来确认数字身份 。
  • OpenID是专为登录认证而生 , 它使用简单 , 门槛很低 。一个网站如果想要接入OpenID认证是非常简单的 , 不需要创建应用 , 不需要App Key , 不需要Secret , 只需要将用户导向OpenID Provider的Entry并带上Callback , 用户只要同意提供信息 , 你就可以拿到这个用户的唯一标识 。对于站点来说只要有人使用Google OpenID授权并返回这个唯一标识那就是我在登录 。
优点
  • 使用门槛变低 , 免去注册流程 , 且用户不再需要输入密码 , 可直接使用第三方登录 , 有利于产品的广泛传播
  • 由于客户端不在需要输入密码 , 很大程度上减少了安全风险 , 客户端不接触用户密码 , 服务器端更易于集中保护
缺点