WebApi - Tokens vs Cookies

本文关键字:Cookies vs Tokens WebApi | 更新日期: 2023-09-27 18:06:11

我正在处理一个现有的单页应用程序,该应用程序使用来自WebAPI的数据。

身份验证主要由WebSecurity和simplememmembership通过表单身份验证来处理,因为应用程序最初是建立在MVC上的。

我知道这是不好的(CSRF),我想通过

来修复它
  • 实现某种CSRF保护(首选)
  • 或通过重新实现身份验证和授权使用令牌而不是cookie。

将实现头验证是一个适当的解决方案?web客户端和移动客户端都在使用API,如果这很重要的话。

我在安全方面不是很熟练,我想确保我们不会因为在这里使用cookie而让自己陷入漏洞。

WebApi - Tokens vs Cookies

好吧,你无论如何都必须留下cookie,否则你将无法验证返回用户(他们每次打开应用页面时都必须进行身份验证)。(当然,还有其他奇特的选择,如使用客户端本地存储或"Flash cookie",但这几乎是相同的方法。)

回答您的问题,是的,您需要实现CSRF保护。您选择哪种实现并不重要:它可以是使用自定义HTTP头或附加WebAPI请求参数的实现,它可以使用内置的防伪API(在您提到的文章中描述)实现,或者您可以自己实现。

我可能会实现自定义CSRF保护机制,因为这样可以使其更适合您的SPA(例如,您可以通过WebAPI响应发送它作为身份验证操作的结果,而不是像文章中建议的那样将其呈现给HTML或JS)。