zoukankan      html  css  js  c++  java
  • 《HTTP 权威指南》笔记:第十二章 基本认证体制

    导言

    客户端可以通过网络来得到想要的信息,但是有一些信息并不能是对所有人都能看到的,因此必须有一种认证机制.
    服务器需要通过这种方式来了解用户身份,一旦服务器知道了用户的身份,就可以让用户能够访问请求的资源.
    这一章讲了最常见的 HTTP 认证形式之一: 基本认证(basic authentication)

    HTTP 的 challenge/response 框架

    框架的流程

    1. 请求:客户端向服务器进行请求文件,命令为 : GET,首部:无.
    2. 质询:服务器用 401 Unauthorized 说明需要客户端提供用户名和密码,首部: WWW-Anthenticate(在这个首部中有两个内容:对保护区域的描述 & 认证算法)
    3. 授权:客户端重新发出请求,并且伴随着 Anthorization 首部(在这个首部中包含着用户名与密码、认证算法),方法为 GET
    4. 成功:如果授权证书是正确的,服务器将文档传递给客户端,首部: Anthentication-Info(其中包含与授权会话相关的附加信息)

    security realm 机制

    定义:

    Web 服务器将受保护的文档组织成 security realm, 每个 security realm 可以有不同的授权用户集.

    格式:

    在 WWW-Authentication 质询首部中含有** realm **指令,用于提示用户应该用什么用户名和密码.
    示例:
    HTTP/1.0 401 Unauthorized
    WWW-Authenticate: Basic realm=" Corporate Financials"

    Basic Authentication 相关知识

    基本认证首部:

    格式:

    1. 质询: WWW-Authenticate: Basic realm = "quoted-realm"
    2. 响应: Authorization: Basic base64-username-and-password

    具体细节:

    1. 质询——服务器发往客户端:因为在网页的不同部分可能会有不同的密码,因此需要设置域.
    2. 响应——客户端发往服务器:首先将用户的 user-name 和 password 用“:”连接起来,然后稍加扰码(Base-64编码)

    Basic authentication 的安全缺陷

    1. Base-64 编码容易被解码,因此其密码实际上就是“明文”传送的.
    2. 没有措施防止重放攻击.
    3. 可能存在假冒行为,让用户相信他连接是一个受基本认证保护的合法主机.

    解决方案

    通过将 Basic Authentication 与加密数据传输配合使用,通过安全加密技术进行加密.





  • 相关阅读:
    GCD
    常用存储位置
    AFNetworking 不支持 text/plain,unacceptable content-type: text/plain
    iOS layer 动画
    自定义对象实现copy,遵守协议<NSCopying, NSMutableCopying>
    Objective-c学习笔记03——内存管理
    Objective-c学习笔记02——类(面向对象)01
    Objective-c学习笔记01——简介
    Objective-c——NSString
    开源网站
  • 原文地址:https://www.cnblogs.com/FBsharl/p/HTTP.html
Copyright © 2011-2022 走看看