zoukankan      html  css  js  c++  java
  • Web验证

    web验证

    ++摘自《奇舞周刊》-《奇舞团资深前端教你,什么是Web验证》作者:韩永刚++

    方案一:传统身份验证

    注册

    • 账号密码加密入库

    登录

    • 账号密码加密后与库中账号密码比对
    • 一致则登录成功,不一致则失败

    存在问题

    • 登录环境不安全,账号输入时可能被监控
    • 发送过程中可能被劫持
    • 入库后可能被黑客攻击而泄露密码
    本质问题:账号密码需要手动输入,且同一个账号密码可能注册多个站点,容易造成泄露

    方案二:第三方登录

    OpenID:开放认证协议——帮网站确认一个用户的身份

    特点:
    • 去中心化:任何网站既可以是身份提供者,又可以是身份使用者
    • 在一个作为OpenID提供者的站点注册,eg:google
    • 接入简单:将用户导向OpenID Provider的Entry并带上callback,只要用户同意认证,即可实现登录
    • example.com ---向Google认证页面请求认证--> 同意认证,返回唯一标识
    优点:
    • 免去注册流程
    • 客户端不再需要输入账号密码,降低安全风险
    缺点:
    • 依赖第三方平台,因此第三方平台的安全性很重要,牵一发而动全身
    • 开放平台的稳定性不达标,可能影响使用
    • 用户流失的风险

    oAuth:开发授权协议——授权第三方在可控范围内访问用户资源

    • 1.example.com ---请求授权-------> Google授权页面
    • 2.example.com <--同意并返回code-- Google授权页面
    • 3.example.com ---code换token----> Google服务
    • 4.example.com <----返回token----- Google服务
    • 5.example.com -携带token访问资源-> Google服务
    • 6.example.com <---返回资源------- Google服务

    方案三:双因素认证

    使用两种及以上能够证明自己身份的方式进行验证
    • 短信验证码、邮件验证码
    • 动态令牌
    • 认证APP,基于TOTP加密算法,利用应用与认证APP共同持有的种子秘钥,每隔30s生成一个新的6位验证码,应用与APP之间的验证码一致则完成验证。
    • 登录确认的方式:不需要输入验证码,而是通过登录确认点击的方式来完成双因素认证的过程。通过公钥加密算法来确认你的身份,应用会生成一个秘钥对,私钥存储在本地,公钥发送给服务器作用用户信息存储,当用户进行登录操作时,服务器会用公钥加密一段信息发送到你的设备上,只有拥有正确私钥的设备才能解密并完成二次认证。

    方案四:WebAuthn(web验证的未来)

    • 由W3C万维网联盟发布的Web标准
    • 提供一系列标准化的协议,让用户告别过去繁琐且不安全的账号密码登录方式,以实现安全的无密登录体验为目的。
    • 允许用户直接使用设备的指纹识别、面部识别、虹膜识别、声音识别、实体秘钥(usb连接、蓝牙连接、NFC连接)等方式来进行登录验证。
  • 相关阅读:
    [二叉树算法]关于层次遍历二叉树的一些算法总结
    数据库事务并发访问产生的问题及四种事务隔离级别
    当relative遇上z-index,阻断事件捕获
    关于CAS操作
    LRU算法与LRUCache
    Hadoop2.x 关于日志文件位置
    推荐系统架构图——我的软件工程概论课设
    文件上传+解析漏洞
    命令执行漏洞
    SSRF漏洞
  • 原文地址:https://www.cnblogs.com/nanhuaqiushui/p/11782720.html
Copyright © 2011-2022 走看看