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擴展漏洞,這樣合適么?
期待各位大神給予指點。。。