常见的安全漏洞原理以及防御知识——第一章:基础篇---HTTP方法、URL、消息头讲解(2)

上一篇文章请参考:第一章:基础篇—HTTP请求与响应(1)

1.HTTP的八种方法

HTTP定义了多种请求方法,来满足各种需求。HTTP/1.0定义了三种请求方法:GETPOSTHEAD,到了HTTP/1.1,新增了五种请求方法:OPTIONSPUTDELETETRACECONNECT。各个请求方法的具体功能如下:

在这里插入图片描述

2.常用的两种的方法 GET和POST

GET:从指定的资源 请求数据,用于 获取数据.
POST:向指定的资源 提交要被处理的数据,用于 将数据发送到服务器.

两者之间的区别:

(1).请求参数的区别

GET请求会把请求的参数拼接在URL后面,以?分隔,多个参数之间用&连接;如果是英文或数字,原样发送,如果是空格或中文,则用Base64编码

POST请求会把提交的数据放在请求体中,不会在URL中显示出来

(2).传输数据的大小

GET: 浏览器和服务器会限制URL的长度,所以传输的数据有限,一般是`2K。

POST: 由于数据不是通过URL传递,所以一般可以传输较大量的数据

(3).数据解析

GET: 通过Request.QueryString获取变量的值

POST: 通过Request.form获取变量的值

(4).安全性

GET: 请求参数在URL后面,可以直接看到,尤其是登录时,如果登录界面被浏览器缓存,其他人就可以通过查看历史记录,拿到账户和密码

POST: 请求参数在请求体里面传输,无法直接拿到,相对GET安全性较高;但是通过抓包工具,还是可以看到请求参数的

3.HTTP消息头

消息头包括了请求头和响应头。(什么是响应头请求头?请看前一篇文章:第一章:基础篇—HTTP请求与响应(1)

(1)什么是HTTP消息头?

HTTP消息头 是在,客户端请求(Request)或 服务器 响应(Response)时传递的,位于 请求或响应 的第一行, HTTP消息体(请求或响应的内容)是其后传输。
HTTP消息头,以明文的字符串格式传送,是以冒号分隔的键/值对,如: Accept-Charset: utf-8,每一个消息头最后以回车符( CR ) 和 换行符( LF )结尾。HTTP消息头结束后,会用一个空白的字段来标识,这样就会出现两个连续的CR-LF

HTTP消息头支持自定义, 自定义的专用消息头一般会添加'X-'前缀。

(2)渗透测试员在攻击Web应用程序时可能遇到的消息头:

  1. 常用消息头
  • Connection:告诉通信的另一端,在完成HTTP传输后是关闭TCP连接,还是保持连接开放以接收其他消息。
  • Content-Encoding:为消息主体中的内容指定编码形式 ,一些应用程序用它来 压缩响应以加快速度传输
  • Content-Leng
  • Content-Type
  • Transfer-Encoding
  1. 请求消息头
  • Accept:浏览器接收的数据类型
  • Accept-Encoding:浏览器能够接收数据的编码格式
  • Accept-Charset:浏览器能够接收的字符集类型
  • Authorization:
  • Cookie:用户识别(保存用户名)
  • Host:主机地址
  • If-Modified-Since
  • If-None-Match
  • Origin
  • User-Agent:用户代理,告诉服务器客户端的浏览器信息和操作系统信息
  1. 响应消息头
  • Date:消息生成时间
  • Content-type:响应数据的类型
  • Transfer-encoding:分块传输
  • Last-Modified: Fri, 13 Apr 2018 06:43:31 GMT :服务器记录的文件最后一次修改的时间
  • Content-type:响应报文的body的内容类型
  • Etag:资源戳,与请求报文的if-none_match配合使用
  • Set-Cookie:将Cookie数据发送到浏览器,并要求浏览器进行记录
  • Content-Encoding:服务器响应给浏览器的文件的压缩方式
  • Content-Language:服务器告诉浏览器响应的语言
  • Server:服务器告诉浏览器当前服务器的信息
  • Location:重定向的url

4.URL

URL(统一资源定位符)是标识Web资源的唯一标识符,web浏览器通过URL从web服务器请求页面。

URL格式(带方括号[]的为可选项):scheme://host[:port#]/path/../[?query-string`][#anchor]

(1)URL是网页的地址,它从左到右由下述部分组成:

  1. Internet资源类型(scheme): 定义因特网服务的类型,以下是常见的url-sheme:
    http :超文本传输协议,不加密;
    https:安全超文本传输协议,安全网页,加密所有的信息交换;
    ftp: 文件传输协议,用于文件下载或上传至网站;
    file:您计算机上的文件
  2. 服务器地址(host):表示请求服务器的域名或者ip地址。
  3. 端口(port):端口号,默认是80, 非必需。
  4. 路径(path):请求资源的路径(其格式与DOS系统中的格式一样,通常有目录/子目录/文件名这样结构组成)。与端口一样,路径并非总是需要的。
    从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分不是一个URL必须的部分,如果省略,则使用默认的文件名。
  5. query-string :发送给服务器的数据
  6. 锚,跟服务器无关,只跟客户端有关

(2)url举例:

http://www.mywebsit.com/sj/test/test.html?name=zhangsan&age=18

scheme: http
host: www.mywebsit.com
port: 80
path: sj/test/test.html (注:文件名是test.html)
query-string: name=zhangsan&age=18

参考文章:

https://www.cnblogs.com/jasy/p/12691190.html

https://www.cnblogs.com/jasy/p/12691309.html

https://blog.csdn.net/cy_cai/article/details/9764961

https://blog.csdn.net/qq_43925904/article/details/105938647

https://blog.csdn.net/qq_41076577/article/details/107586507?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值