在 web 中定义同站点 cookie.xml为 Tomcat 定义 cookie-config



我想将同一站点cookie属性添加到我在Tomcat Web应用程序中使用的cookie中,要添加HttpOnly属性,在web.xml文件中添加以下定义就足够了:

<session-config>
<session-timeout>240</session-timeout>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>

同一网站属性呢?是否可以以与仅http相同的方式设置它,例如:<same-site>true</same-site>

同一站点 cookie 的定义:

同一站点 Cookie(原名"仅限第一方"(原名"第一方"((允许 服务器可降低 CSRF 和信息泄露攻击的风险 通过断言特定 cookie 只能与 从同一可注册域发起的请求。

web.xml配置文件的选项在 Java Servlet 规范中定义。此文件不支持在 Cookie 中包含SameSite的选项。


Tomcat的简单配置

如果要将SameSite选项添加到应用程序中的 cookie 中,可以在META-INF/context.xml中配置 Tomcat Cookie 处理器(CookieProcessor(。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- Add SameSite to the cookies --> 
<CookieProcessor 
sameSiteCookies="none" />
</Context>

注意:此配置在旧版本的 Tomcat 中可能会失败。显然,如果您至少使用 Tomcat 8.5.48 或 9.0.28,这些选项效果很好。对于旧版本,您可以检查一些解决方法。

<小时 />

其他选项

您可以尝试一些实现此行为的 Web 过滤器。例如,您可以检查 IdP 同站点会话 Cookie 过滤器。

最新更新