网站验证学习笔记
HTTP 请求和响应
在了解网站验证之前,有必要了解 HTTP 请求和响应。HTTP 是一种基于请求/响应模式的协议,客户端向服务器发送请求消息,服务器返回响应消息。
一个 HTTP 请求由以下部分组成:
- 方法:GET、POST、PUT、DELETE 等
- URL:请求的地址
- 头部:包含各种元数据,如请求方式、Accept、Content-Type 等
- 正文:请求体,可以为空
一个 HTTP 响应由以下部分组成:
- 状态码:服务器返回的状态码,如 200 OK、404 Not Found 等
- 头部:包含各种元数据,如 Content-Type、Cache-Control 等
- 正文:响应体,可以为空
网站验证方式
基础认证(Basic Authentication)
基础认证是一种最简单的验证方式,它使用用户名和密码作为凭据,在请求头中通过 Base64 编码的形式发送给服务器。
请求头示例:
Copy CodeAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
其中,QWxhZGRpbjpvcGVuIHNlc2FtZQ==
是 Aladdin:open sesame
这组用户名和密码使用 Base64 编码后的结果。
摘要认证(Digest Authentication)
摘要认证是一种稍微复杂一些的验证方式,它使用摘要算法计算出摘要值,并在请求头中发送。与基础认证不同,摘要认证可以防止明文密码被窃听。
请求头示例:
Copy CodeAuthorization: Digest username="admin", realm="test", nonce="89684f952b8852f91ef01ab755e7dcd7", uri="/index.html", algorithm=MD5, response="e2e16dd7b70c002a2dc96011449c33f6"
其中,username
是用户名,realm
是领域(通常是要求客户端输入的消息),nonce
是服务器随机生成的一串字符串,uri
是请求路径,algorithm
是使用的摘要算法,response
是客户端计算得到的摘要值。
OAuth 认证
OAuth 认证是一种常用的第三方认证方式,允许用户授权应用程序访问他们的数据而无需将凭据透露给该应用程序。
此类验证流程需要以下步骤:
- 应用程序向第三方认证服务申请访问令牌;
- 第三方认证服务将访问令牌返回给应用程序;
- 应用程序使用该访问令牌向服务提供商发出请求;
- 服务提供商使用访问令牌验证并返回请求结果。
SSL 证书认证
使用 SSL 证书认证可以确保客户端与服务器之间的通信是加密的,并且确保客户端正在与预期的服务器进行通信。
SSL 证书认证流程:
- 客户端请求与服务器进行 SSL 握手;
- 服务器返回其 SSL 证书;
- 客户端验证证书,检查是否由受信任的权威颁发机构颁发;
- 如果证书有效,客户端将发送一个公共密钥,该密钥将用于加密数据传输。