asp.net - 某些 HTTP 动词真的天生就不如其他动词安全吗?

标签 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。

最佳答案

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

它的意思是,有一些 HTTP 动词可用于绕过流行 Web 服务器上的标准安全配置。

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

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

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

关于asp.net - 某些 HTTP 动词真的天生就不如其他动词安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34069056/

相关文章:

php - Android 未收到 PHP 服务器的响应

node.js - 为 NodeJS cookie header 设置 HttpOnly 属性

c# - 发布应用时显示停机页面

security - Node.js + Express.js 用户权限安全模型

c++ - 只允许来自 RFID 阅读器 C++ 的输入

node.js - Nodejs - HTTP - 带可选参数

asp.net - 在不更改服务器权限的情况下在 ASP.NET 中获取 FLV 缩略图的简单方法?

c# - 无法加载文件或程序集,因为 'Access is denied'(标识 : NETWORK SERVICE)

javascript - 如何通过jquery更改标签值

asp.net - .ASPXAuth Cookie 在 session 期间发生变化