【发布时间】:2013-03-23 05:53:24
【问题描述】:
我正在尝试了解如何使用 ASP.NET Web API 制作一个 API,该 API 将受到 CSRF 的保护,同时仍可从非 Web 环境(例如本机移动应用程序)访问。
我的第一个想法是非 Web 环境永远无法成功通过防伪令牌验证,因为它没有发布的表单。这是真的?有什么方法可以进行验证吗?
如果没有验证方法,我的第二个想法是提供一个 API,它可以验证 Web 调用的防伪令牌,但不能验证非 Web 调用。但是,攻击者似乎可以很容易地使用这种“非 Web”API 进行 CRSF 攻击,对吧?
答案是非 Web API 只需要支持非 Web 身份验证机制(OAuth?),因此无法通过浏览器重放对它的请求吗?还是有更简单的方法?
如果这是唯一的方法,是否有一种简单的方法可以关闭所有不安全的身份验证机制? ASP.NET Web API 中不应该有一个简单/愉快的路径来支持这些场景吗?
【问题讨论】:
标签: asp.net-web-api antiforgerytoken