Spring Security会话 - 管理会话 - 固定 - 保护不起作用

Aka*_*sh. 1 spring spring-security

我正在使用Spring 3.1安全性.以下是我的"spring-security.xml"的一部分

<session-management session-fixation-protection="migrateSession">
<concurrency-control max-sessions="1" expired-url="/Login.html"/>
</session-management>
Run Code Online (Sandbox Code Playgroud)

虽然session-fixation-protection="migrateSession"如果我使用"Chrome浏览器"登录,我会设置静止,然后复制cookie值并打开"Firefox浏览器"并转到登录页面,然后编辑cookie并粘贴"Chrome浏览器"中的值,然后我看到我已登录进入我的申请.这意味着"会话固定攻击"是可能的!

我在春季安全配置中是否遗漏了什么?

这只是我的以下cofig文件

<http auto-config="false" access-denied-page="/" disable-url-rewriting="true">

<intercept-url pattern="/test01*" access="ROLE_USER" requires-channel="https"/>
<intercept-url pattern="/test02*" access="ROLE_USER" requires-channel="https"/>

<form-login login-page="/Login.html"/>
<logout invalidate-session="true"
        logout-success-url="/"
        logout-url="/logout"/>


<session-management session-fixation-protection="migrateSession">        
    <concurrency-control max-sessions="1" expired-url="/Login.html"/>
</session-management>

</http>

<authentication-manager>
<authentication-provider>
<user-service>    
<user name="a" password="a" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

Sha*_*eep 8

如果您登录复制了cookie (正如您所说),那么这不是会话固定攻击(至少不是我们防范的那种).关键是当您登录时cookie会发生变化,以致其他人无法访问您的帐户.如果你想阻止有人修复已经登录到他们帐户的会话,那么这是另一回事,并不是可以通过这种方式轻松保护的东西.

此外,您不需要设置此属性,因为默认情况下已启用此属性.只需使用一个<session-management>元素.

  • 再次阅读 - "将会话cookie值复制到剪贴板,然后登录"......他在登录之前从Internet Explorer*复制cookie.您说您已登录然后复制了cookie.只需检查登录时会话cookie是否更改. (3认同)
  • 不,但这不是一个现实的攻击.您在登录时不应允许某人访问您的浏览器的cookie列表.您应该使用HTTPS来保护会话cookie,因为它是通过网络传输的. (3认同)