gpt4 book ai didi

security - 在 ASP.NET Web API 中,如何防止来自没有 cookie 的客户端的 CSRF 攻击?

转载 作者:行者123 更新时间:2023-12-04 18:06:51 24 4
gpt4 key购买 nike

我正在将 ASP.NET Web API 2 服务作为 RESTful API 来支持移动应用程序。

问题是网络上关于 CSRF 的所有文章包括:

所有人都在谈论基于 cookie 的反 CSRF 验证。

我需要在我的移动应用程序中放置这样一个 cookie,不仅如此,它还必须预先加载,应用程序才能立即运行。有没有办法在不必设置 cookie 的情况下加入这种反 CSRF 安全方法?或者是否有一种方法可以在移动应用程序中预加载安全 cookie,这样我们就可以立即使用它而无需 cookie 设置步骤?

最佳答案

答案:You shouldn't need to .

您将需要使用某种身份验证机制(大概)来保护您的 Web API,我建议仅通过 HTTPS 提供您的 API。实现 HSTS也推荐。

只有在客户端共享 cookie 时才会发生 CSRF 攻击。我的意思是客户端可以访问来自多个域的 cookie(例如为您访问的每个站点存储 cookie 的网络浏览器)。但是,Web 应用程序 API 客户端通常只联系一个域(您的 API 的域)。任何跨站点攻击都不能在您的 API 中使用 cookie,因为客户端不是共享的(Web 应用程序中的 HTTP 客户端与移动浏览器中的 HTTP 客户端是分开的——或者应该是)。因此,如果您的 Web 应用程序 API 仅适用于您的移动应用程序,那么您的 Web 应用程序 API 应该已经可以抵御 CSRF。

请注意,根据 Jaxidian's comment ,以上假设 cookie 用作 session 管理机制而不是面向 HTTP 的机制(例如基本身份验证、NTLM 或 Kerberos)。

关于security - 在 ASP.NET Web API 中,如何防止来自没有 cookie 的客户端的 CSRF 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573814/

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