有人向我指出了这篇文章
这似乎是说除了GET和POST之外的所有HTTP谓词本质上都不太安全,应该在Web服务器配置中禁用。
在我看来,该文章的论点完全是假的,并且基于这样的假设:底层网络平台对其他动词的检查不如在GET和POST上那么严格。
我意识到通过遵循最小特权原则并且只打开你需要的动词,攻击面减少了,但是在一些动词本身就不那么安全的论证中确实存在任何有效性,而且我应该这样做例如,避免在REST应用程序中使用PUT和DELETE?
FWIW我的平台是ASP.NET,混合了Web表单和MVC。
答案 0 :(得分:1)
我认为你误读了这篇文章。
它的含义是有HTTP动词可用于绕过流行的Web服务器上的标准安全配置。
具体来说,如果您使用HTTP GET请求做的不仅仅是检索数据(例如,通过使用http://example.org/auth/root.jsp?cmd=adduser
等查询参数),并且您限制对GET
动词的访问,但忘记限制访问HEAD
动词,攻击者仍然可以在不受您的访问控制系统质疑的情况下调用该URL。
根据该文章,此漏洞存在于IIS“开箱即用”中。
但是,由于REST的一个基本要点是GET不会修改数据,因此根据定义,RESTful解决方案不会受到此潜在漏洞的影响。