首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring安全表单身份验证:如何跟踪会话?

Spring安全表单身份验证:如何跟踪会话?
EN

Stack Overflow用户
提问于 2015-10-07 23:09:25
回答 1查看 111关注 0票数 2

我在Spring Security上使用表单身份验证。因此,我进入我的登录表单,输入我的用户名和密码,然后我可以访问我的网站上受保护的资源。与基本身份验证不同,使用form authentication时,用户名和密码只在第一个请求时发送。

我不明白的是,Spring Security Servlet如何跟踪后续请求中的最终用户?

我了解到,使用basic-authenticationServlet只需在头中查找编码的用户名和密码。但是如何与form authentication一起工作呢?

我假设设置了某种会话变量?如果是,那又是什么呢?

Spring Security是否有某种将会话ids链接到用户名的临时数据库?最重要的是,如果我不使用CSRF token,攻击者所需要做的就是知道这个会话变量来模拟用户吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 22:01:14

在身份验证时,Security添加了一个名为SPRING_SECURITY_CONTEXT的会话属性。

此会话属性存储在服务器内存中,并通过JSESSIONID与浏览器关联。

它包含SecurityContextImpl的一个实例,其中包含一个UsernamePasswordAuthenticationToken,它保存用户名。

Spring安全性是否有某种将会话ids链接到用户名的临时数据库?

是的,就服务器端会话而言,它就像一个数据库。在每个请求中,服务器将根据JSESSIONID的值查找会话属性。

如果我不使用CSRF令牌,攻击者所需要做的就是知道这个会话变量来模拟用户吗?

在没有CSRF保护的情况下,攻击者可以通过让用户使用他们的站点并向您的站点发出请求(通过JS或flash或其他什么)来模拟用户。

如果也使用HTTP基本身份验证,您的站点同样容易受到CSRF的攻击。

在站点上的任何重要形式上始终使用CSRF保护。你为什么不呢?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33003938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档