Jetty 会话 cookie 上的 SameSite 标志

问题描述 投票:0回答:4

如果我使用 Jetty 托管 war 文件,如何将 SameSite=Lax 或 SameSite=Strict 标志添加到 Jetty 生成的会话 cookie 中?

jetty session-cookies
4个回答
6
投票

从 Jetty 9.4.23 开始,您可以在 Web 应用程序的 web.xml 文件中为 Jetty 设置的 JSESSIONID cookie 指定所需的 SameSite 值,如下所示:

<session-config>
    <cookie-config>
        <comment>__SAME_SITE_STRICT__</comment>
    </cookie-config>
</session-config>

其他可能的值是

__SAME_SITE_LAX__
__SAME_SITE_NONE__

有关详细信息,请参阅 Jetty 中的问题 #4247。


1
投票
我使用的是Jetty 6.1.19版本,因为Jetty不支持Cookies中的SameSite属性。 Jetty 还为其最新版本的 Jetty 9.* 提供了一些支持/解决方法。我找到了 Jetty 6.1.19 版本的解决方法 我在 Jetty API 中添加了以下代码行,更改类

HttpFields 的方法名称 addSetCookie。这对我有用。

buf.append(";SameSite=Strict");
API代码:

enter image description here


0
投票
我无法添加

SAME_SITE_LAX

在我的 web.xml 中 当我在 web.xml 中添加此行时,samesite 属性值未设置为 lax

我的码头版本12


-1
投票
让我们借助 CSRF 来了解 SameSite cookie。

攻击场景

攻击者将根据目标用户的兴趣创建一个有吸引力的网站,例如,我们称之为

http://www.trustmedude.com。例如,提供实时板球比分的网站甚至色情网站。在该应用程序中,他可以嵌入 ajax 请求来调用 url

https://www.testbankapp.com/transfer?amt=1000&toAccNo=258946257412&fromAccNo=954781203584&mode=imps

其中258946257412是攻击者的账号。现在,如果合法用户登录到银行的原始网站,那么攻击者将通过某种方式强制用户浏览其网站

http://www.trustmedude.com,例如通过在聊天中发送网址。当用户点击网站时,网站中嵌入的 Ajax 请求将在后台执行。如果用户实际上在另一个选项卡中登录到银行应用程序,则他的 cookie 将在浏览器中随时可用。浏览器将看到请求正在发送到银行的网站。由于请求是向 testbankapp.com 域发起的,因此浏览器在发送用户的有效 cookie 之前不会三思而后行。就是这样,pw!

samesite cookie 的解决方案

这是CSRF攻击的典型例子。在现实世界的攻击中,这将更加复杂。为了防止通过 CSRF 窃取 cookie,HTTP 工作组在 2016 年引入了 SameSite cookie 标志。让我们了解一下它是如何工作的。基本上 SameSite 键有两个可用值,即 lax 和 strict。 SameSite 示例:

设置 Cookie:phpsessid=oIZEL75Sahdgf34ghLnw;仅 Http;安全的; SameSite=严格

考虑上面的 CSRF 示例。如果 SameSite=Strict,如果链接来自外部站点,则浏览器不会将 cookie 发送到已通过身份验证的网站。因此,在我们的示例中,即使用户点击攻击者发送的恶意 URL,浏览器也不会发送 cookie。值 strict 将阻止 cookie 的任何跨源使用,因此它被认为最适合银行应用程序。

但在其他情况下,可能需要有限的跨源使用。例如,如果网站想要将用户引导至 Github,则在访问该网站的常规链接时需要允许会话 cookie。这可以通过设置 SameSite=lax 来实现。在宽松模式下,将允许有限的跨站点使用,即,如果请求是 GET 请求并且请求是顶级的。顶级意味着 URL 栏应指示跨源请求。例如,考虑一下当您从某些 YouTube 评论重定向到 facebook.com 时的情况。

因此,如果您更喜欢银行级别的安全性

SameSite=Strict 是您的选择。

来源:

https://www.wst.space/cookies-samesite-secure-httponly/

编辑:根据此链接Jetty不支持此功能。

© www.soinside.com 2019 - 2024. All rights reserved.