JWT(JSON Web Token)跨用户/应用程序使用风险

时间:2017-03-01 12:29:25

标签: asp.net asp.net-mvc asp.net-core jwt

我已经针对其中一个API使用要求实施了基于JWT的身份验证系统。这意味着,如果用户想要访问任何REST Api,那么将使用JWT令牌传递API。这就是步骤应遵循的方式:

  1. 用户将调用通过用户名/密码的/Authenticate方法。
  2. 系统将验证用户并在响应中返回JWT令牌和超时。
  3. 现在,用户将在请求标头中调用/Employee/Get API方法和JWT标记。例如。授权:Bearer {token}
  4. 事情进展顺利。
  5. 现在问题是,一旦生成令牌,任何用户都可以通过捕获网络请求/通过任何可以读取网络系统中的请求/响应的工具来获取令牌。

    这意味着,如果我为用户Mark生成JWT token,那么通过抓取相同的toke,其他一些用户可以在标题中传递相同的令牌,并且可以访问我的 / Employee /获取 API方法。

    现在,令牌将被验证,因为它是从同一系统生成的,系统不知道用户,它只知道JWT令牌。

    我如何确保其他用户不能使用相同的令牌,即使他们传递相同的令牌,我的系统也应该拒绝该请求。我怎样才能保证安全?

    提前致谢!

1 个答案:

答案 0 :(得分:0)

JWT的使用是身份验证的证明。如果令牌被盗,则攻击者可以冒充用户。所以你需要保护它: