【发布时间】:2015-06-30 05:11:28
【问题描述】:
由于我目前对此的理解程度,我的行为只能被归为怪异。
我在 Ubuntu 上安装了 apache 版本:2.4.7,通过 AJP 1.3 tomcat 7.0.52.0 运行 Spring 应用程序 (MVC),并将 apache shiro 1.2 作为安全框架。
我在 apache2.conf 中设置了 headers 条目,如下所示
Header always append X-Frame-Options SAMEORIGIN
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
如果使用以下任一或所有方法在 tomcat 端强制执行标志,我的行为完全相同:
- conf/context.xml 带有上下文标签的 useHttpOnly="true" 属性
- conf/server.xml 带有 ajp 或 http 的 secure="true" 属性
-
使用以下连接器 WEB-INF/web.xml
<cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config>
在此之后发生的事情是,/login 有一个安全和 httponly 标志,在身份验证成功后,所有这些标志在应用程序中消失,在对服务器的任何调用过程中。用户注销后,标志会在 jsessionid 和 RememberMe 上返回一个额外的标志:DeleteMe。
这个 /login 页面创建带有安全和 httponly 标志的 jsessionid
当认证成功时,两步认证 jsessionid 没有标志
在帐户仪表板中也没有标记
但是在注销时标志又回来了
我的问题是
1:这是通常的行为吗
2:如果这是实际行为,这是否意味着 cookie 在会话 ID 的整个生命周期内都是安全的?
【问题讨论】:
标签: java apache tomcat cookies shiro