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

时间:2018-09-12 06:43:48

标签: java tomcat cookies

我想将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>

“相同站点”属性如何?是否可以采用与仅使用HTTP相同的方式进行设置,例如:<same-site>true</same-site>

同一站点Cookie的定义:

  

同一站点的cookie(仅“第一方”(née“第一方”))允许   服务器以减轻CSRF和信息泄漏攻击的风险   通过断言特定的cookie只应与   来自同一可注册域的请求。

1 个答案:

答案 0 :(得分:1)

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


Tomcat的简单配置

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

<?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


其他选项

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