HTTP消息又称HTTP头,也就是我们用bp抓包后看到的内容,HTTP头由四部分构成:请求头、相应头、普通头和实体头。
1.请求头
请求报头允许客户端向服务器传递请求的附加信息和客户端自身的信息。
(1)Host:Host请求报头域主要用于指定被请求资源的Internet主机和端口号。
(2)User-Agent:User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。登录一些网站时,很多时候都可以见到显示我们的浏览器、系统信息,这些都是此字段的作用。
(3)Referer:Referer包含一个URL,代表当前访问URL的上一个URL,也就是说,用户是从什么地方来到本页面。如:Referer:www.xxx.com/login.php,代表用户从login.php来到当前页面。
(4)Cookie:Cookie是非常重要的请求头,常用来表示请求者身份等
(5)Range:Range可以请求实体的部分内容,多线程下载一定会用到此请求头。
(6)x-forward-for:即XXF头,代表请求段的IP,可以有多个,中间以逗号隔开
(7)Accept:Accept请求报头域用于指定客户端接收哪些MIME类型的信息,如Accept:text/html,表明客户端希望接收HTML文本。
(8)Accept-Charset:Accept-Charset请求报头域用于指定客户端接收的字符集。例如:Accept-Charset:gb2312
2.相应头
相应头是服务器根据请求向客户端发送的HTTP头。
(1)Srever
服务器所使用的Web服务器名称,如Server:Apache/1.3.6(Unix),攻击者看到此头,可以探测Web服务器名称。所以,建议在服务器端修改此头信息。
(2)Set-Cookie:向客户端设置Cookie,通过调查此头,可以清除看到服务器向客户端发送的Cookie信息。
(3)Last-Modified:服务器通过这个头告诉浏览器,资源的最后修改时间。
(4)Location:服务器通过这个头告诉浏览器去访问哪个页面,浏览器接受这个请求之后,通常会立刻访问Location头所指向的页面。这个头通常配合302状态码使用。
(5)Refresh:服务器通过Refresh头告诉浏览器定时刷新浏览器。
3.实体头
请求和相应消息都可以传送一个实体头,实体头定义了关于实体正文和请求所标识的资源的元数据。元数据也就是实体内容的属性,包括实体信息类型、粗航渡、压缩方法、最后一次修改时间等。
(1)Content-Type :用于向接收方指示实体的介质类型。
(2)Content-Encoding:被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。
(3)Content-Length:用于指明实体正文的长度,以字节方式存储的十进制数字来表示。
(4)Last-Modified:用于指示资源的最后修改日期和时间。
4.危险的HTTP头参数
(1)User-Agent
(2)x-forward-for
简称XFF头,代表客户端真实IP,通过修改该值,可以进行伪造客户端IP。XFF注入是SWL注入的一种。
(3)Referer
(4)Cookie
参考:《Web安全深度剖析》