参考书籍:《web安全深度剖析》张炳帅 著
第一章 Web安全简介
(1)攻击者对计算机渗透的一个必需条件:攻击者的计算机能与服务器正常通信。服务器依靠端口与客户端通信,攻击者入侵也是靠端口,或者说是计算机提供的服务。 (2)web四个要点:数据库(存储数据),编程语言(将设计变为真实的存在),web容器(作为终端解析用户请求和脚本语言),优秀的web程序设计者(设计个性化的程序)。 (3)攻击者所掌握的部分技能图: (4)作者认为不错的一些编程语言及应用领域
第二章 深入http请求流程
1.HTTP协议解析
1.发起HTTP请求 多种方式: (1)在浏览器地址栏输入一个URL URL标准格式:协议类型://服务器地址[:端口号]/路径/文件名[参数=值] 例如:https://blog.csdn.net/weixin_51614848?spm=1011.2415.3001.5343 (2)在Linux系统中使用curl命令 + 请求接口的地址 (3)在Windows系统中使用curl.exe工具 2.HTTP协议详解 (1)HTTP请求与响应 HTTP遵循请求(Request)/应答(Response)模型,是一种无状态的协议。 1)HTTP请求包括三部分:请求行(请求方法),请求头(消息报头),请求正文。如下图是一个HTTP请求例子(只保留了一部分内容): HTTP请求行的第一行即为请求行,请求行由三部分组成,该行的第一部分说明了该请求是POST请求;该行的第二部分是一个斜杠(/login/ajax),用来说明请求的是该域名根目录下的使用ajax技术传输的数据,该行的最后一部分说明使用的是HTTP1.1版本(另一个可选项是1.0)。 第二行至空白行为HTTP中的请求头(也被称为消息头)。其中,HOST代表请求的主机地址,User -Agent-代表浏览器的标识。请求头由客户端自行设定。 HTTP请求的最后一行为请求正文,请求正文是可选的,它最常出现在POST请求方法中。 2)HTTP响应 与HTTP请求对应的是HTTP响应,HTTP响应也由三部分内容组成,分别是响应行、响应头(消息报头)和响应正文(消息主题)。 HTTP响应的第一行为响应行,其中有HTTP版本(HTTP/1.1)、状态码(200)以及消息“OK”。 第二行至末尾的空白行为响应头,由服务器向客户端发送。 消息报头之后是响应正文,是服务器向客户端发送的HTML数据。
(2)HTTP请求方法 HTTP请求的方法非常多,其中GET、POST最常见。 以下为HTTP/1.1标准方法: 1)GET用于获取请求界面的指定信息,如果请求资源为动态脚本(非HTML),那么返回文本是web容器解析后的HTML源代码。一般只有开发者内定好的参数项目才会接收。 2)POST与GET类似,区别在于POST有请求内容而GET没有;GET在发送数据时有大小限制,POST多用于向服务器传输大量数据;GET请求会把发送数据显示在浏览器顶端而POST不会,因此POST更安全。 3)HEAD方法与GET大致相同,唯一区别在于HEAD方法服务器不能在响应里返回消息主体,常被攻击者用于编写扫描工具(只测试资源是否存在,速度快)。 4)PUT方法用于请求服务器把请求中的实体存储在请求资源下,如果已存在就替换,不存在就创建。 通常服务器会关闭这种方法因为危险。 5)DELETE方法用于请求服务器删除指定资源。通常服务器会关闭这种方法因为危险。 6)TRACE方法被用于激发一个远程的应用层的请求消息回路,比较少见。 7)CONNECT用于动态切换到隧道的代理。 8)OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。OPTIONS方法可能会暴露一些敏感信息,这些信息将帮助攻击者准备更进一步的攻击。
(3)HTTP状态码 HTTP状态码出现在HTTP响应第一行中。 (4)HTTP消息 HTTP消息(HTTP头)由四部分组成:请求头,响应头,普通头,实体头。
2 .HTTP协议与HTTPS协议区别
|