首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSRF和ValidateAntiForgeryToken在ASP.Net mvc中的应用?

CSRF和ValidateAntiForgeryToken在ASP.Net mvc中的应用?
EN

Stack Overflow用户
提问于 2015-08-30 08:30:27
回答 2查看 942关注 0票数 1

我刚刚实现了一个使用ASP.NET MVC的例子,它使用ValidateAntiForgeryToken属性来防止CSRF攻击。

为了验证它,我制作了从另一个应用程序发出相同post请求所需的HTML片段。基本上,如果我将带有令牌加密值的隐藏字段添加到这个第三方应用程序中,我将得到一个成功的post request.So,如果我只通过检查原始表单的html源就可以看到隐藏的值,那么在ValidateAntiForgeryToken中就没有任何意义。有人能告诉我它的真正意义吗?

另一方面,基于前面示例的结果,我想知道在应用程序上具有有效凭据的恶意用户是否能够获得自己的令牌,并使用它代表其他用户发出post请求,并执行CSRF攻击?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-30 18:28:46

有人能告诉我它的真正意义吗?

除了CSRF攻击的潜在受害者之外,没有人能读取令牌。同一原产地政策阻止另一个站点从用户会话读取令牌。只要令牌是以安全方式生成的,并且是浏览器会话特有的,就不需要向令牌添加任何其他内容。

另一方面,基于前面示例的结果,我想知道在应用程序上具有有效凭据的恶意用户是否能够获得自己的令牌,并使用它代表其他用户发出post请求,并执行CSRF攻击?

每个用户会话的令牌应该是唯一的。如果Bob在evil.example.com上设置了CSRF攻击,并让Alice在登录到bank.example.org并发送自己的反CSRF令牌的同时访问他的站点,应用程序应该拒绝该令牌,因为它与Alice的会话不匹配。

(它还应该将其记录为安全事件。)

票数 0
EN

Stack Overflow用户

发布于 2015-08-30 13:25:18

是的,你的表演方式是有可能的。但是,您可以通过添加包含代理信息的其他隐藏/加密字段来扩展当前的防伪造令牌实现来扩展保护。

下面的示例让您了解如何创建自定义AntiForgery令牌

http://techbrij.com/angularjs-antiforgerytoken-asp-net-mvc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32294697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档