前端怎么解决cors攻击(Token流程是什么怎么解决超时问题)

Token流程是什么?怎么解决超时问题?

令牌验证流程:

前端怎么解决cors攻击(Token流程是什么怎么解决超时问题)

1.背景介绍

传统身份验证方法

HTTP是一个无状态协议,也就是说,它不 我不知道谁在访问这个应用程序。这里我们把用户看成一个客户端,客户端使用用户名和密码认证通过了,但是下一次这个客户端发送请求的时候需要再次验证。

解决方案是,当用户请求登录时,如果没有问题,我们会在服务器上生成一条记录,可以说明登录的用户是谁,然后把这条记录的ID号发送给客户端。客户端收到后,将这个ID号存储在一个Cookie中,下次用户向服务器发送请求时,可以随身携带这个Cookie。这样,服务器将验证这个Cookie中的信息,看是否能在服务器上找到相应的记录。如果可以,说明用户通过了认证,然后将用户请求的数据返回给客户端。

以上是会话。我们需要在服务器上存储为登录用户生成的会话。这些会话可以存储在内存、磁盘或数据库中。我们可能需要定期清理服务器上的过期会话。

基于令牌的认证方法

使用基于令牌的认证方法,不需要存储用户 服务器上的登录记录。一般流程如下:

客户端请求使用用户名和密码登录。

服务器收到验证用户名和密码的请求。

验证成功后,服务器会颁发一个令牌并发送给客户端。

收到令牌后,客户端可以将其存储在Cookie或LocalStorage中。

每次客户端向服务器请求资源时,都需要携带服务器颁发的令牌。

服务器接收请求,然后验证客户端请求中携带的令牌,如果验证成功,则向客户端返回请求的数据。

传统身份验证方法

HTTP是一个无状态协议,也就是说,它不 我不知道谁在访问这个应用程序。这里我们把用户看成一个客户端,客户端使用用户名和密码认证通过了,但是下一次这个客户端发送请求的时候需要再次验证。

解决方案是,当用户请求登录时,如果没有问题,我们会在服务器上生成一条记录,可以说明登录的用户是谁,然后把这条记录的ID号发送给客户端。客户端收到后会将这个ID号存储在一个Cookie中,下次用户向服务器发送请求时可以带上这个Cookie,这样服务器就会验证这个Cookie中的信息,看看在服务器上是否能找到对应的记录。如果有,如果有,服务器可以。数据被返回给客户端。

以上是会话。我们需要在服务器上存储为登录用户生成的会话。这些会话可以存储在内存、磁盘或数据库中。我们可能需要定期清理服务器上的过期会话。

基于令牌的认证方法

使用基于令牌的认证方法,不需要存储用户 服务器上的登录记录。一般流程如下:

客户端请求使用用户名和密码登录。

服务器收到验证用户名和密码的请求。

验证成功后,服务器会颁发一个令牌,然后发送给客户端。

收到令牌后,客户端可以将其存储在Cookie或LocalStorage中。

每次客户端向服务器请求资源时,都需要携带服务器颁发的令牌。

服务器接收请求,然后验证客户端请求中的令牌,如果验证成功,则向客户端返回所请求数据切片的来源。

最早的Tiles是在Struts1.1中组装的,主要目的是使用多个jsp页面作为新页面功能的一部分,然后将它们组合成一个最终的呈现页面。通过这种,可以方便地更改和维护页面的功能。

现在Tiles已经作为Apache的一个独立开源项目维护。

如果你发现自己在每个页面上写了三行相同的JSP代码,或者如果你想轻松定义一个复杂的模板布局,那么我相信学习Tiles框架会对你有所帮助。

2.知识分析

传统身份验证方法

HTTP是一个无状态协议,也就是说,它不 我不知道谁在访问这个应用程序。这里我们把用户看成一个客户端,客户端使用用户名和密码认证通过了,但是下一次这个客户端发送请求的时候需要再次验证。

解决方案是,当用户请求登录时,如果没有问题,我们会在服务器上生成一条记录,可以说明登录的用户是谁,然后把这条记录的ID号发送给客户端。客户端收到后,将这个ID号存储在一个Cookie中,下次用户向服务器发送请求时,可以随身携带这个Cookie。这样,服务器将验证这个Cookie中的信息,看是否能在服务器上找到相应的记录。如果可以,说明用户通过了认证,然后将用户请求的数据返回给客户端。

以上是会话。我们需要在服务器上存储为登录用户生成的会话。这些会话可以存储在内存、磁盘或数据库中。我们可能需要定期清理服务器上的过期会话。

基于令牌的认证方法

使用基于t的Oken的认证方法不需要存储用户 服务器上的登录记录。一般流程如下:

客户端请求使用用户名和密码登录。

服务器收到验证用户名和密码的请求。

验证成功后,服务器会颁发一个令牌,然后发送给客户端。

收到令牌后,客户端可以将其存储在Cookie或LocalStorage中。

每次客户端向服务器请求资源时,都需要携带服务器颁发的令牌。

服务器接收请求,然后验证客户端请求中携带的令牌,如果验证成功,则向客户端返回请求的数据。

传统身份验证方法

HTTP是一个无状态协议,也就是说,它不 我不知道谁在访问这个应用程序。这里我们把用户看成一个客户端,客户端使用用户名和密码认证通过了,但是下一次这个客户端发送请求的时候需要再次验证。

解决方案是,当用户请求登录时,如果没有问题,我们会在服务器上生成一条记录,可以说明登录的用户是谁,然后把这条记录的ID号发送给客户端。客户端收到后,将这个ID号存储在一个Cookie中,下次用户向服务器发送请求时,可以随身携带这个Cookie。这样,服务器将验证这个Cookie中的信息,看是否能在服务器上找到相应的记录。如果可以,说明用户通过了认证,然后将用户请求的数据返回给客户端。

以上是会话。我们需要在服务器上存储为登录用户生成的会话。这些会话可以存储在内存、磁盘或数据库中。我们可能需要定期清理服务器上的过期会话。

基于令牌的认证方法

使用基于令牌的认证方法,不需要存储用户 服务器上的登录记录。一般流程如下:

客户端请求使用用户名和密码登录。

服务器收到验证用户名和密码的请求。

验证成功后,服务器会颁发一个令牌,然后发送给客户端。

收到令牌后,客户端可以将其存储在Cookie或LocalStorage中。

每次客户端向服务器请求资源时,都需要携带服务器颁发的令牌。

服务器接收请求,然后验证客户端请求中携带的令牌,如果验证成功,则向客户端返回请求的数据。

3.常见问题

基于服务器的身份验证方法暴露的一些问题

每次经过身份验证的用户发出请求时,服务器都需要创建一个记录来存储信息。当越来越多的用户发送请求时,内存的开销也会增加。

2.可伸缩性:在服务器中使用Seesion在内存中存储登录信息,伴随而来的是可扩展性问题。

(跨域资源共享):当我们需要跨多个移动设备使用数据时,跨域资源共享会是一件很头疼的事情。当使用Ajax从另一个域获取资源时,可以禁止请求。

4.CSRF(跨站请求伪造):当用户访问银行网站时,很容易受到跨站请求伪造的攻击,并可用于访问其他网站。在这些问题中,可扩展行是最突出的。因此,我们有必要找到一种更有效的方法。

第四步:解决方案

基于令牌的认证过程如下,:。

1.用户通过用户名和密码发送请求。

2.程序验证。

3.程序向客户端返回一个签名的令牌。

4.客户端存储令牌,并在每次发送请求时使用它。

5.服务器验证令牌并返回数据。

令牌有一定的时间限制。到期后,您需要重新进行身份认证才能登录并获得新令牌。

移动客户端登录服务器时,需要提供包含令牌的认证,服务器需要向通道认证包含令牌的认证信息。如果通道返回有效,则移动客户端被认为是合法的。

在这个过程中,经常会断开连接,然后重新连接。每次重新连接过程相当于登录服务器一次,服务器会向通道服务器认证令牌。但由于令牌的时效性,一段时间后断开的重新连接会被拒绝。

一种解决方案是:每次断开连接重新连接时,登录服务器,申请新的令牌;;另一种是:当服务器反馈是令牌已经过期,那么通知客户端再次从通道服务器获取,然后断开连接,重新连接新的令牌。相对于可能的频繁获取令牌,更倾向于第二种方法。从体验来看,大部分代币的时效都是按照小时来计算的。

发布于 2023-05-26 20:14:03
收藏
分享
海报
0 条评论
9
上一篇:手机对方接听震动怎么设置(oppo 手机怎么取消通话挂机震动) 下一篇:qq删除所有好友怎么找回来(qq会员怎么恢复好友和群)
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码