windows 身份验证中的 ValidateAntiForgeryToken

ValidateAntiForgeryToken in windows authentication

我们的应用程序在后端使用 AngularJS 并使用 Web API。这只是内部应用程序,所使用的身份验证仅为 'Windows' 模式。我们正在使用自定义授权(角色基础)来限制应用程序 Web api 方法的 access/execution。

我的问题是我们是否需要为那些具有 HttpPost 和 HttpPut 属性的 Web api 操作添加 ValidateAntiForgeryToken 属性?我以前从未使用过这个 ValidateAntiForgeryToken,因为我只参与了内部 Web 应用程序(仅限本地 Intranet)。请指导我何时/如何使用ValidateAntiForgeryToken。

ValidateAntiForgeryToken 保护您的用户免受恶意网络应用程序的侵害,这些恶意网络应用程序会向您的网络应用程序发送 POST 请求,而您的用户并不知道,这些请求被称为 CSRF。该请求仍然会成功,因为它来自您实际上有权这样做的用户。 这与实际的身份验证机制无关,实际上,与 Windows 身份验证相比,自动单点登录的风险更高。

如果您的内部 Web 应用程序值得付出努力,有针对性的攻击可能会诱使您的用户访问攻击者的网站,攻击者的网站又会向您的 Web 应用程序发送 POST 请求。

我的看法是,即使在这种情况下,您也应该使用 ValidateAntiForgeryToken 作为纵深防御措施。