在阅读了其他一些问题后,我相信我对反伪造令牌的理解是错误的。
我有一些控制器发布操作,它们采用相同的模型,但是根据某些逻辑执行不同的操作。
通过在Chrome开发人员工具中编辑表单的操作,我能够在代码中完成一些意外的事情。
我猜我现在需要使用ActionName("action")
数据注释,但是,我仍然对令牌提供的保护感到好奇。纯粹是为了阻止外部网站发布到表单,而没有在应用程序中进行任何实际保护?
答案 0 :(得分:3)
防伪令牌用于防止CSRF(跨站点请求伪造)攻击。就这些。想象一下一个恶意行为者设置Facebook登录页面克隆的情况。它看起来就像Facebook的登录页面,并且通过某种方式,他们设法将用户集中到那里(网络钓鱼电子邮件等)。用户输入用户名和密码,然后点击提交。表单操作设置为进入 actual Facebook登录页面,因此就用户而言,他们已经登录并按预期访问了Facebook。但是,恶意行为者在输入凭据时可以访问他们的凭据,现在可以出去窃取他们的Facebook帐户。
防伪令牌可以通过在发布后在页面上放置一个必须与服务器端生成的令牌匹配的令牌来防止这种情况。第三方无法生成自己匹配的令牌,因此,现在进行上述类似操作的任何尝试都会立即失败。简而言之就是这样。