【问题标题】:Difference between Forms based authentication and Token based Authetication基于表单的身份验证和基于令牌的身份验证之间的区别
【发布时间】:2018-06-08 13:14:28
【问题描述】:

如何决定使用哪种身份验证进行身份验证。 (例如:基于表单的身份验证或基于令牌的身份验证)。

使用基于令牌的身份验证优于基于表单/会话/cookie 的身份验证有哪些优点。我在网上阅读了多篇文章,但仍然不清楚。

谁能解释我如何在这两者之间进行选择以用于网络和移动平台 用户身份验证。

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api jwt access-token asp.net-authentication


    【解决方案1】:

    JWT 更好,除非您有我不知道的特定需求。

    会话需要 cookie,而 cookie 仅在浏览器中有效 JWT:本质上是 JSON 格式的数据,因此您可以在不同的平台上使用它。

    此外,JWT 更安全。如果您使用 cookie 作为持久身份验证机制,您将容易受到 CSRF 攻击。黑客可以诱骗受害者进入他的网站并单击某些按钮,他的请求将作为受害者发送,因为每个请求都会自动发送 cookie。

    使用 JWT,您可以将其存储在任何存储空间中,即:localStorage 用于桌面。 JWT 会随您的每个请求一起手动发送。所以上述情况不会发生。

    黑客能否在localStorage 中修改您的 JWT 并添加更多声明,即:将用户类型从“用户”更改为“管理员”,不!它需要一些只有服务器拥有的私钥。您可以尝试 Auth0 并在 jwt.io 中进行测试。

    这些是关键点,imo。还有其他好处,但您可以通过 google 轻松找到。

    【讨论】:

    • 那么,从存储过程中读取的用户会话对象是否可以被黑客以任何方式修改。
    • 存储过程?如果您的意思是 localStorage,那么没有。创建/修改令牌的唯一方法是当您拥有保存在服务器中的 secret 密钥时。
    【解决方案2】:

    我使用带有 RESTful api 的令牌,以及基于 Web 应用程序的会话(不包括 SAP,因为我通常构建一个 api 来处理服务层)。

    这里的主要理由对我来说很简单,任何 api 我都希望在标题或正文中发送所有内容。因此,基于令牌是要走的路。然而,使用 MVC,我不在乎,因为我正在渲染视图而不仅仅是数据。

    【讨论】:

      猜你喜欢
      • 2023-02-05
      • 2021-01-25
      • 2016-01-23
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      相关资源
      最近更新 更多