WebDAV:分布式创作和版本控制协议 (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
HTTP 1.1(请参阅 IETF RFC 2068)提供一组可供客户端与服务器通讯的方法,并指定响应(从服务器返回发出请求的客户端)的格式。 WebDAV 完全采用此规范中的所有方法,扩展其中的一些方法,并引入了其他可提供所描述功能的方法。 WebDAV 中使用的方法包括:
1.Options、Head 和 Trace。
主要由应用程序用来发现和跟踪服务器支持和网络行为。
2.Get。
检索文档。
3.Put 和 Post。
将文档提交到服务器。
4.Delete。
销毁资源或集合。
5. Mkcol。
创建集合。
6.PropFind 和 PropPatch。
针对资源和集合检索和设置属性。
7.Copy 和 Move。
管理命名空间上下文中的集合和资源。
8. Lock 和 Unlock。
改写保护。
通俗的说,该协议允许我们通过http协议就能对远程服务器上的文件进行操作,包括写入、删除、更新等。
理解到这里,貌似如果在web服务中开启了该协议,意味着为恶意攻击者开启了一个可以攻击服务器的新的便捷途径,并且能够轻易的造成恶劣的影响。
网上的资料都说应该禁用web服务对该协议的支持,对于tomcat来说,好像默认就是不启用对webdav协议的支持的,但是有很多人的博客上都写了如何在web.xml中关闭http的不常用的或者不安全的方法,关闭代码如下,添加到web.xml中即可:
<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>
目前不明白的地方是:
webdav协议如此不安全,出现的意义何在?
tomcat默认就不开启webdav协议的支持,禁用put、delete等方法是不是有点多此一举?
有些安全漏洞扫描软件,会将支持options方法当成是webdav扩展漏洞,这样合适么?
期待各位大神给予指点。。。