抱歉,我还是很困惑。我希望有人能分享他们如何理解以下问题和基于会话/cookie的身份验证是有状态的还是无状态的?。不同的人可能会使用不同的术语。我们可以更多地关注概念而不是术语,并在使用它们之前定义术语。
我发现了一些关于基于令牌机制的不同讨论。https://security.stackexchange.com/a/92123说
在基于令牌的身份验证中,没有会话被持久化服务器端(无状态)。
而https://stackoverflow.com/a/58398997说
服务器仍然需要存储黑名单中的令牌,这违背了无状态的目的。
评论说
在哪里存储令牌并不重要,但只有当它与状态关联时才重要。
“无状态”定义为“第一个客户端之后来自同一个客户端的请求不需要进行身份验证”吗?是否将“有状态”定义为“需要对每个请求进行身份验证”?
基于会话的机制是有状态的,非基于会话的机制是无状态的,这是正确的吗?(我想是的,基于会话的==有状态)
基于
令牌是否用于身份验证?或者不用于身份验证,就像会话id不是?(我猜令牌只用于身份验证,因此发送回令牌的每个请求都将与服务器进行身份验证。相反,发送回会话id的请求不与服务器进行身份验证,尽管会话id放弃了身份验证。令牌用于身份验证,就像用户密码一样。)
基于令牌的机制是无状态的吗?(我想是的,因为令牌只用于身份验证。)还是基于令牌的机制与包含会话ID的cookie一样有状态?
什么时候一个令牌与一个状态相关联,什么时候没有?
基于
cookie可以携带任何类型的信息、会话ID、令牌、.对吗?
cookie是否可以用于实现有状态(即基于会话的)机制或无状态(即基于非会话的)机制,这取决于cookie所携带的信息?如果cookie带有会话id,那么它是有状态的(即基于会话的)?如果cookie包含诸如令牌之类的非会话信息,那么它是无状态的(即基于非会话的)?
当令牌是用cookie编写的,它仍然是无状态的?
谢谢。
发布于 2020-02-11 18:31:06
会话是状态的。
Cookie提供了一种通过http (无状态协议)提供状态(持久数据)的机制。
State可以用来表示身份验证的结果,但也可以表示各种其他事情。
https://security.stackexchange.com/questions/225723
复制相似问题