看看有哪些 Web 认证技术.
BASIC 认证
BASIC 认证(基本认证)是从 HTTP/1.0 就定义的认证方式。
BASIC 认证会将“用户名:密码”经过 Base64 加密后放入请求头部的 Authorization 字段用于服务端校验,因为采用的是 Base64 加密,密码被盗用的风险极高,另外一般的浏览器也无法实现认证注销操作。

若在网站中使用 BASIC 认证,最好加上 SSL 认证(即开启 HTTPS),否则无法保障密码传输的安全。
DIGEST 认证
为弥补 BASIC 认证存在的弱点,HTTP/1.1 起就有了 DIGEST 认证。DIGEST 认证会将用户密码经过 MD5 加密后传输给服务端,降低了密码被盗用的风险,但是仍然没有解决用户伪装的问题。

步骤2中 response 也可叫做 Request-Digest,存放经过 MD5 运算后的密码字符串,形成响应码。
无论是 BASIC 认证还是 DIGEST 认证,他们都达不到多数 Web 网站对高度安全等级的追求标准。
SSL 客户端认证
SSL客户端认证是借由 HTTPS 的客户端证书完成认证的方式,凭借客户端证书认证,服务器可确认访问是否来自已登录的客户端。认证过程可以参见 这篇文章。
大多数情况下,SSL 客户端认证是与其他认证方式组合使用的,很明显,SSL 客户端认证只能证明请求是来自于安全的客户端,并没法证明请求是来自于安全的用户。
Bearer 认证
Bearer 认证也属于 HTTP 协议标准验证,它随着 OAuth 协议而流行。
Bearer 认证中的凭证称为 BEARER_TOKEN,或者是 access_token,它的颁发和验证完全由我们自己的应用程序来控制,而不依赖于系统和 Web 服务器,Bearer 认证的标准请求方式如下:
Authorization: Bearer [BEARER_TOKEN]
Bearer 认证的核心便是 BEARER_TOKEN,而最流行的 Token 编码方式便是:JSON WEB TOKEN。
Json web token (JWT), 特别适用于分布式站点的单点登录(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,也可以增加一些额外的其它业务逻辑所必须的声明信息,该 token 也可直接被用于认证,也可被加密。
表单认证
基于表单的认证方法并不是在 HTTP 协议中定义的。客户端会向服务器上的 Web 应用程序发送登录信息(Credential),登录信息的验证结果认证。
表单认证不具备共同标准规范,在每个 Web 网站上都会有各不相同的实现方式,一般会使用 Cookie + Session 的方式管理会话。
表单认证因为需要自主实现,如果全面考虑过安全性能问题,就能够具备高度的安全等级。但在表单认证的实现中存在问题的 Web 网站也是屡见不鲜。
OAuth2 + OpenID
OAuth 与 OpenID 可以归类为第三方认证方式,即对该用户的认证通过非本服务进行认证。
OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。目前,OAuth 的最新版本为 2.0。
OAuth 强调授权(authorization),举个例子带大家了解 OAuth 授权过程。大家都用过微信授权吧?首先,客户端会请求用户是否允许微信授权,用户允许后,微信端会返回 code 信息;然后,服务端使用 code 信息授权登录微信平台,登录成功后会返回用户认证信息 access_token; 最后,服务端再拿着 access_token 信息获取到用户相关的资源。大致过程如下所示。

那 OpenID 又是什么呢?OpenID 强调认证(authentication),试想一下,客户端请求微信授权的时候,如果用户未登录微信或者没有微信账户呢?是不是就要跳到微信登录页面?而这就是 OpenID 做的事,OpenID 仅仅做一个用户认证的功能,不能拿到用户的任何信息,用户的信息都安全的存储在 OpenID 服务器上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。
OpenID 往往在不同服务之间单点登录的时候较为常用。
推荐阅读:
- 《图解 HTTP》
- 了解第三方认证方式:OAuth与OpenID
看看有哪些 Web 认证技术.的更多相关文章
- .Net Web开发技术栈
有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...
- 绕过校园网WEB认证_dns2tcp实现
相信很多高校学生都有用WEB认证方式接入校园网的经历 拿我所在的大学为例,我们大学的校园网由联通公司承建,当我连上寝室的无线路由器后,浏览器会自动弹出一个由卓智公司开发的认证界面,如下图: 如果买了联 ...
- Web攻击技术
Web攻击技术 1.针对Web的攻击技术 1.1.在客户端即可篡改请求 在Web应用中,从浏览器那接收到的Http的全部内容,都可以在客户端自由地变更.篡改,所以Web应用可能会接收到与预期数据不相同 ...
- OpenWRT下实现Portal认证(WEB认证)
首先简单介绍一下什么是Portal认证,Portal认证,通常也会叫Web认证,未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务.当用户需要使用互联网中的其它信息时,必须在门户 ...
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...
- .Net Web开发技术栈 收藏
原文:http://www.cnblogs.com/1996V/p/7700087.html#!comments 有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎 ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_03-用户认证技术方案-Oauth2协议
2.2 Oauth2认证 2.2.1 Oauth2认证流程 第三方认证技术方案最主要是解决认证协议的通用标准 问题,因为要实现 跨系统认证,各系统之间要遵循一定的 接口协议. OAUTH协议为用户资源 ...
- 图解 HTTP 笔记(八)——常见 Web 攻击技术
本章主要讲解 HTTP 通信过程中的一些常见 Web 攻击技术 一.跨站脚本攻击 跨站脚本攻击(Cross-Site Scripting, XSS)是指通过存在安全漏洞的 Web 网站注册用户的浏览器 ...
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
随机推荐
- IE6 中png背景透明的最好方法
应用方式:(网站尾部加上如下代码) <!--[if IE 6]> <script src="js/DDPngMin.js"></script> ...
- rollup环境搭建(es6转es5、压缩、本地服务器、热更新)
文件目录 package.json { "name": "my-vue", "version": "1.0.0", &q ...
- 代码点(code point)和代码单元(code units)
1. 解释一 char:Java中,char类型为16个二进制位,原本用于表示一个字符.但后来发现,16位已经不够表示所有的字符,所以后来发展出了代码点表示字符的方法. 代码点(code point) ...
- macos的两个快捷键和一个小tip
学校的linux协会介绍了一个免费的light轻量级加速器,昨天晚上十点左右的时候着手研究,发现其实就是一个代理服务器.在配置这个代理服务器的时候碰到了一些困难并最终都解决了.下面记录一下配置过程学到 ...
- rust 生命周期2
之前定义的结构体,都是不含引用的. 如果想定义含引用的结构体,请定义生命周期注解 #[warn(unused_variables)] struct ImportantExcerpt<'a> ...
- rust 编码模式
➜ hello_cargo git:(master) ✗ rustc --print code-models Available code models: small kernel medium la ...
- JAVA设计模式 2【创建型】原型模式的理解与使用
在本节中,我们将学习和使用原型模式:这一节学习的原型模式也是创建型 模式的其中之一.再次复习一下:创建型 模式就是描述如何去更好的创建一个对象. 我们都知道,在JAVA 语言中.使用new 关键字创建 ...
- docker 镜像删除
(我们以删除 php-fpm 这个镜像为例子) 一.查看镜像的 ID [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED ...
- 四层发现-UDP发现
udp发现要注意选择一个不常用的端口,如果目标ip在up时目标端口是开放状态,那么不管目标ip是否为up状态,都不会收到任何回应,只有在目标ip为down状态且目标端口为关闭状态,才会返回一个目标不可 ...
- 区间dp 能量项链 洛谷p1063
题目大意:如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为 (Mars单位),新产生的珠子的头标记为m,尾标记为n. 需要时,Mars人就用吸盘夹住 ...