本文将以时间维度介绍一些目前常见的Web验证方法以及相关协议 , 带你了解Web验证的过去、现在与未来 。
传统身份验证方式
文章插图
过去普遍的做法可能是这样的
注册
- 前端注册页面填写用户名和密码表单 , 发送给后台服务器
- 后台服务器将接收到的用户名和密码进行加密并插入到数据库 , 然后回馈是否成功的信息给前端页面 。
- 前端登录页面填写用户名和密码表单 , 发送给后台服务器
- 后台服务器将接收到的用户名和密码进行加密后与数据库储存信息进行对比 , 如果账号密码一致则返回给前端登录成功信息 , 不一致则返回失败信息 。
- 当登录环境不安全时 , 输入密码时可能被监控
- 发送密码到服务器的过程中可能被劫持
- 密码存储在数据库如果被黑客攻击可能造成大量密码泄露
- 人们通常使用一个密码应对所有账号 , 而攻击者获取密码的方式又数不胜数 , 一旦在某个疏于防备的瞬间泄露了一个密码 , 那么该用户所有账号都将面临巨大安全风险
文章插图
现在 , 越来越多的站点开放了第三方登录的功能 , 使得账号密码登录不再是唯一的身份验证方式 , 在可以进行第三方登录的站点 , 人们通常选择使用第三方登录的方式进行身份验证 。实现第三方登录有两种协议 , 分别为OpenID开放认证协议与OAuth开放授权协议
OpenID和OAuth完全是为了两种不同的需求而生 , OpenID的目标是为了帮助网站确认一个用户的身份 , OAuth的目标是为了授权第三方在可控范围下访问用户资源 , OAuth有两个版本 , OAuth1.0由于其实现较为复杂 , 已经基本被OAuth2.0所取代 , 以下分别对两种协议进行讲解
OpenID 开放认证协议
文章插图
定义
- OpenID是一个去中心化的网上身份认证系统 。对于支持OpenID的网站 , 用户不需要记住像用户名和密码这样的传统验证标记 。取而代之的是 , 他们只需要预先在一个作为OpenID身份提供者(identity provider, IdP)的网站上注册 , 比如google 。OpenID是去中心化的 , 任何网站都可以使用OpenID来作为用户登录的一种方式 , 任何网站也都可以作为OpenID身份提供者 。OpenID既解决了问题而又不需要依赖于中心性的网站来确认数字身份 。
- OpenID是专为登录认证而生 , 它使用简单 , 门槛很低 。一个网站如果想要接入OpenID认证是非常简单的 , 不需要创建应用 , 不需要App Key , 不需要Secret , 只需要将用户导向OpenID Provider的Entry并带上Callback , 用户只要同意提供信息 , 你就可以拿到这个用户的唯一标识 。对于站点来说只要有人使用Google OpenID授权并返回这个唯一标识那就是我在登录 。
- 使用门槛变低 , 免去注册流程 , 且用户不再需要输入密码 , 可直接使用第三方登录 , 有利于产品的广泛传播
- 由于客户端不在需要输入密码 , 很大程度上减少了安全风险 , 客户端不接触用户密码 , 服务器端更易于集中保护
- 依赖开放平台的安全防护能力 , 因为开放平台本身也可能是使用账号密码登录或者其他第三方平台登录 , 所以开放平台本身也会出现一定的安全风险 。如果开放平台本身出现安全问题 , 那么所有与其关联的第三方认证站点都将会出现安全问题
- 依赖开放平台的认证 , 如果开放平台的稳定性不达标 , 会导致自身登录稳定性差 。如第三方平台暂时不可用 , 则自身登录也不可用 , 如果开放平台恶意不给予认证 , 那么用户将无法登录 , 这个在较大的站点上是致命的 。
- 聊聊java中的进制问题
- 烤箱做蛋糕回缩的原因 烤箱做蛋糕会回缩是怎么回事
- 微信公众号的推广渠道和方法
- 智能马桶冲的菊花疼怎么办 智能马桶一冲菊花就想拉屎怎么回事
- 马桶阻尼器安装步骤 怎样拆马桶盖的阻尼器
- 常用前端监控告警工具介绍
- 利用jQuery实现简单的数据双向绑定
- 世界上最贵的蜂蜜是多少钱一斤
- 领券中心项目,我是如何用 Redis 做实时订阅推送的?
- 网站被植入webshel??l导致网站瘫痪,网络安全防范太重要了