【问题标题】:Define Same-site cookie in web.xml cookie-config for Tomcat在 web.xml cookie-config 中为 Tomcat 定义同站点 cookie
【发布时间】:2019-02-16 17:28:14
【问题描述】:

我想将Same-site cookie attribute 添加到我在 Tomcat Web 应用程序中使用的 cookie 中,添加 HttpOnly 属性在 web.xml 文件中添加以下定义就足够了:

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

Same-site 属性呢?是否可以以与 http-only 相同的方式设置它,例如:&lt;same-site&gt;true&lt;/same-site&gt;

Same-site cookie 的定义:

同一站点 cookie(née “First-Party-Only”(née “First-Party”))允许 服务器以减轻 CSRF 和信息泄漏攻击的风险 通过断言特定的 cookie 只应与 从同一可注册域发起的请求。

【问题讨论】:

  • Ivan Tsenov 写了如何将它添加到 Tomcat 的 context.xml

标签: java tomcat cookies


【解决方案1】:

web.xml 配置文件的选项在Java Servlet Specification 中定义。此文件不支持包含SameSite in the cookies 的选项。


Tomcat 的简单配置

如果您想在应用程序的 cookie 中添加SameSite 选项,您可以在META-INF/context.xml 中配置Tomcat Cookie ProcessorCookieProcessor)。

<?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,这些选项会很好地工作。对于旧版本,有一些workarounds you may check


其他选项

您可以尝试一些实现此行为的网络过滤器。例如,您可以查看IdP SameSite Session Cookie Filter

【讨论】:

    猜你喜欢
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2021-04-22
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多