我试图了解如何使用 ASP.NET Web API 制作一个 API,该 API 将受到CSRF的保护,同时仍可从非 Web 环境(例如本机移动应用程序)访问。
我的第一个想法是非 Web 环境永远无法成功通过防伪令牌验证,因为它没有发布的表单。这是真的?有什么方法可以使验证工作吗?
如果没有办法验证,我的第二个想法是提供一个 API,它可以验证 Web 调用的防伪令牌,但不能验证非 Web 调用。然而,攻击者似乎可以很容易地使用这个“非网络”API 进行 CRSF 攻击,对吧?
答案是非 Web API 只需要支持非 Web 身份验证机制(OAuth?),因此无法通过浏览器重放对它的请求吗?或者有没有更简单的方法?
如果这是唯一的方法,是否有一种简单的方法可以关闭所有不安全的身份验证机制?ASP.NET Web API 中不应该有一些简单/快乐的路径来支持这些场景吗?