gpt4 book ai didi

java - 了解 secure/httponly cookie 如何为 java 应用程序工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:27:29 24 4
gpt4 key购买 nike

我一直有一种行为,由于我目前对此的理解水平,我只能称之为怪异。

我有 apache 版本:2.4.7 在 Ubuntu 上通过 AJP 1.3 tomcat 7.0.52.0 代理运行一个以 apache shiro 1.2 作为安全框架的 spring 应用程序 (MVC)。

我已经在 apache2.conf 中设置了 header 条目,如下所示

Header always append X-Frame-Options SAMEORIGIN
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

如果使用以下任一或所有方法在 tomcat 端强制执行标志,我会有完全相同的行为:

  • conf/context.xml with useHttpOnly="true"context 标签的属性
  • 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 标志,在身份验证成功后,所有这些标志在应用程序中消失,在对服务器的任何调用中。用户注销后,标志会返回一个额外的标志:DeleteMe在 jsessionid 和 RememberMe 上。

这个/login 页面创建带有 secure 和 httponly 标志的 jsessionid jsessionid at login

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

2 step authentication

在帐户仪表板中也没有标记

account Dashboard

但是在注销时标志又回来了 logout

不过我的问题是

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

最佳答案

这不是通常的行为/观察,因为这些标志不适用于发送到服务器以维持状态的 Cookie 请求 header 。接收到的值由客户端使用,但不由客户端传输。您被显示 Cookie header 列的诊断界面误导了。 Set-CookieCookie 这样就不对称了。

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

关于java - 了解 secure/httponly cookie 如何为 java 应用程序工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com