我一直有一种行为,由于我目前对此的理解程度,我只能认为这很奇怪。
我有apache版本:2.4.7在Ubuntu上代理通过AJP 1.3 tomcat 7.0.52.0运行一个spring应用程序(MVC)和apache shiro 1.2作为安全框架。
我在apache2.conf中设置了header条目,如下所示
Header always append X-Frame-Options SAMEORIGIN
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
如果使用以下任一或所有方法在tomcat端强制执行标记,我会有相同的行为:
连接器WEB-INF / web.xml,包含以下内容
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
在此之后发生的事情是/login
处有一个安全和httponly标志,在验证成功后,所有这些标志在应用程序中消失,在任何对服务器的调用中。一旦用户注销,标志将返回jéssionid和RememberMe上的额外一个:DeleteMe
。
此/ login页面使用secure和httponly标志创建jsessionid
当验证成功时,2步auth jsessionid没有标志
在帐户信息中心中也没有标记
但是在退出时,旗帜又回来了
我的问题是
1 :这是通常的行为
2 :如果这是实际行为,这是否意味着cookie在会话ID的整个生命周期内都是安全的?
答案 0 :(得分:5)
这不是通常的行为/观察,因为这些标志不适用于发送到服务器以维持状态的numberOfLegs
请求标头。接收到的值由客户端使用,但不发送。该诊断界面会误导您显示Animal
标头的列。 Cookie
和Cookie
并不对称。
判断您的非浏览器客户端是否认可“ SECURE”设置的唯一方法是诱使它向Cookie中指定的相同域/路径发送非HTTPS请求,并观察其是否忽略了先前设置的Cookie。作为安全。