赞
踩
友情链接:
Web安全|为什么要禁止除GET和POST之外的HTTP方法?
不安全的HTTP方法
我们常见的HTTP请求方法是GET、POST和HEAD。但是,其实除了这两个之外,HTTP还有一些其他的请求方法。
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
WebDAV虽然方便了网站管理员对网站的管理,但是也带来了新的安全风险!
以下是WebDAV支持的HTTP请求方法。
方法 描述
GET Get长度限制为1024,特别快,不安全,在URL里可见,URL提交参数以?分隔,多个参数用&连接,请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 长度一般无限制,由中间件限制,较慢,安全,URL里不可见。请求的参数在数据包的请求body中
PUT 向指定资源位置上传其最新内容
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
我们可以将请求方法设置为OPTIONS,来查看服务器支持的请求方法。
HTTP head请求
.
官方定义:
HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。一个HEAD请求的响应中,HTTP头中包含的元信息应该和一个GET请求的响应消息相同。这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。一个HEAD请求的响应可被缓存,也就是说,响应中的信息可能用来更新之前缓存的实体。如果当前实体跟缓存实体的阈值不同(可通过Content-Length、Content-MD5、ETag或Last-Modified的变化来表明),那么这个缓存就被视为过期了。
.
简而言之
HEAD请求常常被忽略,但是能提供很多有用的信息,特别是在有限的速度和带宽下。主
要有以下特点:
- 只请求资源的首部;
- 检查超链接的有效性;
- 检查网页是否被修改;
- 多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等
.
HEAD方法:它与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
.
错误码:
- 1xx:指示信息–表示请求已接收,继续处理。
- 2xx:成功–表示请求已被成功接收、理解、接受。
- 3xx:重定向–要完成请求必须进行更进一步的操作。
- 4xx:客户端错误–请求有语法错误或请求无法实现。
- 5xx:服务器端错误–服务器未能实现合法的请求。常见状态代码、状态描述的说明如下。
- 200 OK:客户端请求成功。
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务。
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
但是有些网站开启了WebDAV,并且管理员配置不当,导致支持危险的HTTP方法,如下。该网站除了支持GET、POST、OPTIONS、HEAD之外,还支持 PUT、DELETE请求方法。
风险等级 :低风险(具体风险视通过不安全的HTTP请求能获得哪些信息)
修订建议 :如果服务器不需要支持WebDAV,请务必禁用它,或禁止不必要的HTTP 方法,只留下GET、POST方法!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。