某些HTTP动词本质上是否比其他动词更不安全?

时间:2015-12-03 14:52:09

标签: asp.net security http

有人向我指出了这篇文章

http://resources.infosecinstitute.com/http-verb-tempering-bypassing-web-authentication-and-authorization/

这似乎是说除了GET和POST之外的所有HTTP谓词本质上都不太安全,应该在Web服务器配置中禁用。

在我看来,该文章的论点完全是假的,并且基于这样的假设:底层网络平台对其他动词的检查不如在GET和POST上那么严格。

我意识到通过遵循最小特权原则并且只打开你需要的动词,攻击面减少了,但是在一些动词本身就不那么安全的论证中确实存在任何有效性,而且我应该这样做例如,避免在REST应用程序中使用PUT和DELETE?

FWIW我的平台是ASP.NET,混合了Web表单和MVC。

1 个答案:

答案 0 :(得分:1)

我认为你误读了这篇文章。

它的含义是有HTTP动词可用于绕过流行的Web服务器上的标准安全配置。

具体来说,如果您使用HTTP GET请求做的不仅仅是检索数据(例如,通过使用http://example.org/auth/root.jsp?cmd=adduser等查询参数),并且您限制对GET动词的访问,但忘记限制访问HEAD动词,攻击者仍然可以在不受您的访问控制系统质疑的情况下调用该URL。

根据该文章,此漏洞存在于IIS“开箱即用”中。

但是,由于REST的一个基本要点是GET不会修改数据,因此根据定义,RESTful解决方案不会受到此潜在漏洞的影响。