undestanding secure / httponly cookie如何为java应用程序工作

时间:2015-04-22 13:38:26

标签: java apache tomcat cookies shiro

我一直有一种行为,由于我目前对此的理解程度,我只能认为这很奇怪。

我有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端强制执行标记,我会有相同的行为:

  • conf / context.xml with useHttpOnly =" true"上下文标记的属性
  • conf / server.xml with secure =" true" ajp或http
  • 的属性
  • 连接器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 jsessionid at login

当验证成功时,2步auth jsessionid没有标志

2 step authentication

在帐户信息中心中也没有标记

account Dashboard

但是在退出时,旗帜又回来了 logout

我的问题是

1 :这是通常的行为
2 :如果这是实际行为,这是否意味着cookie在会话ID的整个生命周期内都是安全的?

1 个答案:

答案 0 :(得分:5)

这不是通常的行为/观察,因为这些标志不适用于发送到服务器以维持状态的numberOfLegs 请求标头。接收到的值由客户端使用,但不发送。该诊断界面会误导您显示Animal标头的列。 CookieCookie并不对称。

判断您的非浏览器客户端是否认可“ SECURE”设置的唯一方法是诱使它向Cookie中指定的相同域/路径发送非HTTPS请求,并观察其是否忽略了先前设置的Cookie。作为安全。