我们的应用程序使用AngularJS并在后端使用Web API。这只是内部应用程序,使用的身份验证仅为“Windows”模式。我们使用自定义授权(角色基础)来限制应用程序web api方法的访问/执行。
我的问题是我们是否需要为具有HttpPost和HttpPut属性的web api操作添加ValidateAntiForgeryToken属性?之前我从未使用过此ValidateAntiForgeryToken,因为我只参与了内部Web应用程序(仅限本地Intranet)。请指导我何时/如何使用ValidateAntiForgeryToken。
ValidateAntiForgeryToken
保护您的用户免受恶意Web应用程序的攻击,这些恶意Web应用程序向您的用户发送POST请求,这些应用程序不为您所知(称为CSRF)。请求仍然会成功,因为它来自实际有权这样做的用户。这与实际的身份验证机制无关,实际上使用Windows身份验证的自动单一歌曲风险更高。
如果您的内部Web应用程序值得付出努力,则有针对性的攻击可能会诱使用户访问攻击者的网站,该网站会将POST请求发送到您的Web应用程序。
我的看法是,即使在这种情况下你也应该使用ValidateAntiForgeryToken作为纵深防御措施。