我想将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只应与 来自同一可注册域的请求。
答案 0 :(得分:1)
web.xml
配置文件的选项在Java Servlet Specification中定义。该文件不支持包含SameSite
in the cookies的选项。
如果要将SameSite
选项添加到应用程序中的cookie,则可以在CookieProcessor
中配置Tomcat Cookie Processor(META-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。