Security Testing 简明教程

Security Testing - HTTP Protocol Basics

理解协议对于充分掌握安全测试非常重要。当我们在 Web 服务器和客户端之间截取数据包时,您将能够体会到协议的重要性。

HTTP Protocol

超文本传输协议 (HTTP) 是用于分布式、协作式、超媒体信息系统的应用程序级协议。它自 1990 年以来一直是万维网数据通信的基础。HTTP 是一个通用无状态协议,还可以使用其请求方法、错误代码和标头的扩展用于其他目的。

基本上,HTTP 是一个基于 TCP/IP 的通信协议,用于通过 Web 传输诸如 HTML 文件、图像文件、查询结果等数据。它为计算机之间通信提供了一种标准化方式。HTTP 规范指定了如何将客户端请求的数据发送到服务器,以及服务器如何响应这些请求。

Basic Features

以下三个基本特性使 HTTP 成为一个简单但功能强大的协议 −

  1. HTTP is connectionless − HTTP 客户端(即浏览器)发起 HTTP 请求。发出请求后,客户端断开与服务器的连接并等待响应。服务器处理请求并重新建立与客户端的连接以将响应发回。

  2. HTTP is media independent − 只要客户端和服务器都知道如何处理数据内容,即可通过 HTTP 发送任何类型的数据。客户端和服务器都需要使用适当的 MIME 类型指定内容类型。

  3. HTTP is stateless − HTTP 是无连接的,这是 HTTP 是无状态协议的直接结果。只有在当前请求期间,服务器和客户端才会互相了解。之后,他们都会忘记对方。由于协议的这种性质,客户端或浏览器都不能在 Web 页面中跨不同请求保留信息。

HTTP/1.0 为每次请求/响应交换使用一个新连接,而 HTTP/1.1 连接可能用于一个或多个请求/响应交换。

Architecture

下图显示了一个 Web 应用程序非常基础的架构,并描述了 HTTP 所在的位置 −

http Protocol

HTTP 协议是一个基于客户端/服务器架构的请求/响应协议,其中网络浏览器、机器人和搜索引擎等充当 HTTP 客户端,而网络服务器充当服务器。

  1. Client − HTTP 客户端以请求方法、URI 和协议版本的形式向服务器发送请求,然后是包含请求修饰符、客户端信息和可能通过 TCP/IP 连接传输的主体内容的 MIME 类似消息。

  2. Server − HTTP 服务器使用状态行(包括消息的协议版本和成功或错误代码)进行响应,然后是包含服务器信息、实体元信息和可能的实体主体内容的 MIME 类似消息。

HTTP – Disadvantages

  1. HTTP 不是一个完全安全的协议。

  2. HTTP 使用端口 80 作为通信的默认端口。

  3. HTTP 在应用程序层运行。它需要创建多个连接以进行数据传输,这会增加管理开销。

  4. 使用 HTTP 时不需要加密/数字证书。

Http Protocol Details

为了深入了解 HTTP 协议,请点击以下各个链接。