gpt4 book ai didi

asp.net-mvc - AJAX CSRF 攻击和 .Net MVC

转载 作者:行者123 更新时间:2023-12-04 05:00:50 25 4
gpt4 key购买 nike

这篇文章描述了所有 JSON HttpGet 和 HttpPost AJAX 调用的标记系统:

简而言之,您使用 AntiForgeryToken 属性在页面上创建 token ,然后手动验证该值是否通过 AJAX 调用发送回 Controller 。

http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attacks

经过数小时的互联网侦查,总是有人提到这种可能性,但没有人真正实现它。相反,通常重复的技术是 1) 仅使用 HttpPost AJAX 请求(这会破坏 REST),2) 将所有 json 响应包装在一个匿名对象中,这会导致 .net MVC4 中的代码非常不优雅,3) 使用无法解析的 cruf,这会破坏常用库,例如​​backbone.js

那么为什么我们不都使用上面链接的标记系统呢?我错过了什么?

最佳答案

如果您担心 CSRF,并且您担心 REST 并正确执行 REST,那么您不应该在 GET 中做任何会受到 CSRF 影响的事情,因为 AntiForgeryTokens 的全部目的是处理不断变化的数据(即,您不能在没有首先获取包含 token 的页面的情况下使用 AntiForgeryToken)。

因此,说使用 POST“破坏 REST”似乎首先误解了您使用 token 的目的。 GET 确实可以公开敏感信息,但是如果您想将其与 GET 一起使用,则必须先通过某种方式获取 token 。

带有 json 和 Ajax 的 Ajax 和 AntiForgeryToken 的真正问题在于“内置”验证仅适用于表单值,而不适用于 json。所以你必须自己做验证,你链接的那篇文章很好地解释了如何做到这一点。

关于asp.net-mvc - AJAX CSRF 攻击和 .Net MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com