这种基于令牌的身份验证的实现和逻辑是否足够安全?

时间:2018-10-06 18:45:32

标签: asp.net authentication vuejs2 token single-page-application

我是一个初学者,我已经实现了基于令牌的身份验证的第一个版本和逻辑,我不确定它是否足够安全以用于生产。

我有一个使用Vue.js 2制作的静态SPA,而服务器端是使用ASP.NET VB.net Web窗体应用程序制作的

由于缺乏对特定概念的了解,我没有使用任何特殊的.NET软件包

我使用的逻辑如下:

  • 我要求客户提供用户名和密码,并验证他是否在我们的数据库中以进行验证

  • 如果未验证客户端,则在前端处理错误...如果未验证,则生成一个令牌,该令牌是数据库中某些值(例如用户名+密码)的连接的哈希(秘密密钥) + login_created_at +当前日期时间。

  • 我以JSON格式(易于解析)的字符串形式发送此令牌,以及客户端ID(来自数据库),令牌的到期日期和DateTime(之前使用在散列中)生成令牌的地方

  • 在前端,我将此字符串(令牌对象)存储在本地存储中,并检索它,并使用自定义标头将其发送给服务器以用于随后的每个请求

  • 在身份验证部分(对于客户端后续请求),我验证客户端ID是否有效,然后使用它从数据库中检索与以前相同的值,并尝试重新生成令牌,该令牌应等于接收到的令牌令牌

  • 因此,我从那里选择是否允许访问所请求的Web服务

    1. 此逻辑是否足够安全?

    2. 可以在本地存储上修改此令牌吗?

    3. 我注意到,如果该对象被拦截,复制或读取,任何人都可以以客户身份登录。我该如何解决?

    4. 我注意到,如果将令牌的到期日期更改为以后的日期,则客户端或黑客可以保持连接状态,令牌将永不过期。

    5. 是否需要使用.NET软件包,否则将无法解决问题?如果是,那么这些软件包是什么?

0 个答案:

没有答案