第三章 HTTP校验和访问控制
3.1 HTTP
熟练掌握HTTP知识才能写出各种匹配规则实现访问控制。
3.1.1 HTTP简介
超文本传输协议,用于服务器和客户端打交道,交换信息。
3.1.2 统一资源定位符
表示从互联网取得资源的路径和方法,俗称网址。
<协议>://<域名主机>:<端口>/<资源位置>
3.1.3 HTTP请求
请求行、请求头、请求实体
一个请求的表格示意图。
Method URL 版本[CRLF]
P1: XX[CRLF]
P2: XX[CRLF]
[CRLF]
CONTENT
3.1.4 HTTP响应
状态行、响应头、响应实体
一个响应的表格示意图。
版本 状态码 短语[CRLF]
P1: XX[CRLF]
P2: XX[CRLF]
[CRLF]
CONTENT
3.1.5 HTTP消息
HTTP消息又称HTTP头,内容有普通头、请求头、响应头、实体头。
常用的普通头:缓存指令Cache-Control、指定连接类型Connetion
常用的请求头:Cookie、Referer等。
常用的响应头:Location、Refresh、Set-Cookie
实体头:Content-Length、Content-Type
3.1.6 Cookie
Cookie是一段ASCII文本,由服务器写入客户机用于会话跟踪。
Secure选项用于SSL加密传输,HttpOnly用于限制JS读取。
3.2 HTTP校验
HTTP设计之初没考虑到加密和完整性校验。数据长度可随意改,篡改无难度。
出现畸形数据包会影响服务器性能,甚至控制下一次HTTP响应。
WAF可以保障HTTP的安全,主要通过对HTTP请求做异常检测来实现。
3.3 HTTP访问控制
访问控制是实现信息CIA的基础有力手段。
主要目的是限制访问主体对客体的访问,限制主体对客体实施某种操作。
访问控制首先要考虑对合法用户进行验证,然后对访问策略进行选用与管理,
最后对非法用户或是越权操作进行管理。
HTTP访问控制主要是针对网络层的访问控制,写成通用包过滤规则,
包过滤规则有URL限制、HTTP方法限制、入站IP限制。
思考题
1.HTTP的URL的一般格式是什么?
答:http://<域名主机>:<端口>/<资源位置>
2.CRLF是指什么?简述HTTP响应报文的结构。
答:回车换行,状态行、响应头、正文。
状态行内容有 版本号、状态码、短语
3.写出5种HTTP请求方法,并简述其作用及安全性。
答:GET/TRACE/POST/PATCH/PUT
前2种是安全的,因为没修改数据。
TRACE用于网络诊断服务器将回送消息、POST用于提交数据、PATCH用于修改文档。
PUT用于写入资源,URL作为标识。
4.第一个数字为4的状态码表示什么?404 Not Found具体表示什么?
答:代表请求有误,404代表资源没找到。
5.分别说明Referer、Host、Set-Cookie是那种类型的HTTP头,简述作用。
答:前两者请求头、Set-Cookie是响应头。
他们作用分别是,注明请求上一个URL、注明请求主机和端口号、给客户端写入会话跟踪。
6.Set-Cookie的一般形式是什么?
答:Set-Cookie:key=value[;HttpOnly]等。注意不能有空格。
7.写出5个HTTP的校验的对象及限制。
答:对报文整体长度进行限制;
对请求行的长度、参数个数进行限制;
对请求头的个数及长度进行限制;
对HTTP版本号和请求方法进行限制;
对HOST域和消息报头进行限制。
8.HTTP访问控制主要对TCP/IP的那一层进行访问控制?具体可以分为哪几类?
答:网络层、主要是针对数据包进行过滤。
细分为URL限制、HTTP方法限制、来源IP限制。