什么是Web认证

简而言之,web认证就是一个确认对方身份的过程。Web认证最典型的方式是通过用户名和密码。

Web认证有多种方式

A. Http协议内建的认证方法

1. Http Basic Authentication (Http基本认证)

HTTP基本认证是最简单也是曾经使用过很长时间的一种认证方式。基本认证要求为每一个保护域(realm)提供一个用户名和密码进行认证。

流程简介:

a. 客户端浏览器访问一个受http基本认证保护的资源。

b. 服务器返回401(authentication required)状态,要求客户端提供用户名和密码进行认证。Response Header里面有一个属性WWW-Authenticate,它的值比如: Basic realm="Restlet tutorial"。

c. 客户端弹出一个窗口,用于输入用户名和密码(基本上所有的浏览器都提供对基本认证的支持,它们都内建了一个用户名密码输入窗口)。

d. 输入用户名密码并确认之后,客户端把%username%:%password%用Base64进行编码后通过Request Header: Authorization传送给服务器,所以可以看到Http基本认证是明文传输,安全风险很大。比如Authorization: Basic xxxxxxxxxx.

e. 如果认证成功,则返回相应的资源。如果认证失败,则跳回b,重新进行认证。

特点:

*. Http是无状态的,即使来自同一个客户端,对同一个realm内资源的每一个访问还是会被要求进行认证。

*. 客户端会缓存用户名和密码,并和认证域(authentication realm)一起保存。所以,如果对同一个域(realm)的其它资源进行访问,不需要你重新输入用户名和密码。

*. 登录信息会和认证域以及服务器名一起存储,所以可以很好地和其他登录信息区分开来。

*. 基本认证方式是不安全的,因为用户名密码以及内容都是以非加密的方式传输。

2. Digest Authentication (摘要式身份认证)

摘要式认证是一种基于challenge-response的认证模式。

流程简介:

a. 客户端发起一个请求(没有认证信息)。

b. Web服务器返回一个带有WWW-Authenticate头的response(401),请求提供认证。

c. 客户端返回用户名和密码的摘要信息(比如说MD5加密),而不是明文。

d. 通过认证,则返回相应的内容。否则,继续b。

特点:

*. 摘要认证主要是为了解决基本认证中最大的漏洞,即用明文传输用户名和密码的问题。

*. 挑战模式:每次返回401响应的时候,都会返回一个nonce(number used only once)。或者,为了安全起见,还可能会使用一次性nounce(每个request都得到一个不同的nounce)等其它方法来加强安全性。

*. Checksum(默认是MD5 checksum)是username, password, nonce值, HTTP方法, 和被请求的URI的checksum。

*. 安全隐患:虽然密码并非明文传输,但黑客还是可以利用digest值来访问网站。并且,它对内容并不加密。

B. Form-based

基于Form的认证方式是高度可定制,也应该是目前用地最多的一种认证方式。

流程简介:

1. 客户端通过一个form,把用户名和密码post给服务端。

2. 服务端通过一些逻辑来判断认证是否有效。

3. 如果认证成功,服务器返回一个cookie(一个能唯一确认客户端的cookie,比如sessionId),用于客户端接下来的访问。如果认证失败,会提示用户进行重新输入用户名密码再次认证。

特点:

*. 高度可定制:可以根据自己的需要来实现认证逻辑。

*. 服务器端要有一个保存客户端信息的地方,比如session。

*. 客户端要有一个cookie来表明自己的身份,一般是username和一个cookie值(比如sessionId)的组合。

*. 客户端cookie的生命周期和安全性息息相关。比如现在很多站点都支持“remember me”,其实就是在服务器端remember session并在客户端remember cookie。有些站点为了更好的安全性,用这种方式登录时,如果要执行一些重要的操作比如改密码,会要求客户用用户名和密码的方式重新登录。

C. 证书认证

证书认证方式比之其他方式是最安全的认证方式。

对于数字证书的作用,我在这篇文章 里面做了详细介绍。

D. 微软提供的认证方式

这几种认证方式都是微软提供的,不做太多介绍。

1. NTLM,IE only。

2. Microsoft Passport(Single Signon).

好了,这篇文章就简单介绍一下各种认证方式吧。下篇文章,主要讨论几种认证方式在各种服务器上的实现方式。

Web认证方法探视(1)相关推荐

  1. 服务器无线不能登录界面,Web认证无法跳转到登录页面

    步骤1.排查ePortal服务是否正常运行 1.    点击ePortal服务器桌面的程序图标 ,弹出ePortal服务管理器的控制台界面,v1.41版本服务管理器界面如下: 3.png (123.7 ...

  2. wayos利用easyradius实现WEB认证页面的记住密码及到期提醒功能

    之前就有很多用户在问我,想在wayos的认证页面中实现记住用户名和密码,要不然用户每次都要输入用户名和密码非常麻烦,我个人觉得这个不是很难搞定,最主要就是利用cookies,在页面加载的时候去读取co ...

  3. 绕过web认证学习总结

    绕过Web授权和认证之篡改HTTP请求 http://www.myhack58.com/Article/html/3/8/2015/62279_17.htm  什么是HTTP请求   超文本传输协议( ...

  4. Wiwiz无线Web认证实现限速

    一直在用Wiwiz做Web认证和Wifi计费,感觉还是很好的. 关于Wiwiz虚拟机设置的方法请参考以前的帖子: http://itbbs.pconline.com.cn/network/131622 ...

  5. 无线认证web认证服务器,wifi web认证服务器地址

    wifi web认证服务器地址 内容精选 换一换 域名认证时,需要将下载的认证文件上传到网站根目录,然后进行认证.用户使用的服务器不同,文件上传的位置有所不同,请参照以下方法完成认证文件的上传.如果网 ...

  6. OpenPortal Wifi认证、Portal协议认证、WEB认证解决方案

    OpenPortal认证系统 操作手册 OpenPortal网络接入认证专家 目录 声明 4 前言 5 一. 内容概述 6 二. 技术支持 6 三. 致谢: 6 第一章 理念与组成 7 1.1 理念 ...

  7. 如何登录无线web认证服务器,路由器如何设置web认证的方式连接免费WIFI

    现在大部分酒店商城餐厅等提供的免费WIFI都会使用WEB认证的方式连接无线WIFI:推广商品广告和宣传品牌信息等:web 现在大部分酒店商城餐厅等提供的免费WIFI都会使用WEB认证的方式连接无线WI ...

  8. 福州大学java期末试卷,Java Web认证题.doc

    Java Web认证题.doc 福州大学工程技术学院福州大学工程技术学院 04 级级 Web 应用程序设计应用程序设计Java 扬帆把舵,奋勇拼搏,看我扬帆把舵,奋勇拼搏,看我Java,英姿焕爽,英姿 ...

  9. 家用路由器 实现 Web认证

    转载需注明,本文地址:http://blog.csdn.net/btyh17mxy/article/details/17281781 简介和原理 上个月跟某神秘部门一小哥吃饭时听说有人将wifi热点伪 ...

  10. php radius web认证,内置WEB认证配置(radius认证)

    本帖 * 后由 浪天涯星仔 于 2016-1-9 20:14 编辑 功能介绍: Web认证是一种对用户访问网络的权限进行控制的身份认证方法,这种认证方法不需要用户安装专用的客户端认证软件,使用普通的浏 ...

最新文章

  1. 设置代理_ie浏览器一键取消自动检测设置并设置代理
  2. 达内软件测试证书是什么证书,达内软件测试培训让我拥有了实际工作经验
  3. LeetCode 100. 相同的树 思考分析
  4. java 打印abcd_用JAVA编程统计字符串ABCD123!@#$%ab中大写字母、小写字母、数字、其它字符的个数并打印出来...
  5. 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法
  6. 让你的微信私人账号也具备公众账号的 关键字回复功能
  7. 情怀无价!诺基亚225 4G正式开售:320元
  8. javascript 动态创建表格:新增、删除行和单元格
  9. java 传址或传值
  10. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks
  11. 计算机辅助教学的开题报告,开题报告样例1(计算机辅助教学)(8页)-原创力文档...
  12. bootstraptable 一条数据跨行_据说它是唐山市拥有奶茶店最多的一条街,你一定也逛过!...
  13. java8以及常见编程技术Api中文版手册
  14. FastJson最新.jar下载
  15. oracle密码过期修改
  16. IO端口和IO内存映射【waitting】
  17. C++实现凸包Graham_scan算法
  18. 如何使用百数批量打印二维码?
  19. GNP/CMC(纳米石墨片/羧甲基纤维素钠)和GNP/rGO(纳米石墨片/还原氧化石墨烯)复合石墨膜-供应硫化锗玻璃/ 硒化镓GaSe/硫化镓GaS/碘化铬CrI3/鈣鈦礦/二硫化钛TiS2薄膜定制
  20. 八个步骤教你做好会议现场管理

热门文章

  1. 软件构造心得(5)spec、RI、AF、A的概念辨析之spec
  2. 日记app(1.0)进展报告
  3. 爱上经典之《大公鸡》
  4. 干货:一个案例看懂“结巴”分词(Jieba),入行NLP必备
  5. html5 ios 键盘挡住输入框,IOS 键盘挡住输入框的问题解决办法
  6. ITN网络课程笔记(十一)
  7. 在JavaScript中使用Octet Streams
  8. Linux那些事儿 之 戏说USB(37)字符串描述符
  9. 计算机等级考试准考证打河南,2019年河南牧院计算机等级考试准考证打印时间...
  10. Java8------Sort()