一尘不染

使用安全通道时如何让码头发送带有安全标志的jsessionid-cookie

tomcat

我在生产环境中使用Tomcat,在测试环境中使用码头(通过jetty-maven-plugin)。

Tomcat在jsessionid-
cookie上设置安全标志,当它通过安全通道(https)发送时,这对我来说似乎是个好主意,因为当用户单击http时,它可以防止会话暴露://-link。但是码头不是这样!

我想强制Jetty像Tomcat一样,并始终在通过安全通道发送的jsessionid-
cookies上设置安全标志,因为否则,我的测试环境与生产环境的行为将有很大不同。但是我找不到任何配置选项可达到此目的。

我也想知道这是否是Jetty中的安全性漏洞。由于未将通过安全通道发送的jsessionid-
cookie标记为安全,因此如果用户切换回不安全通道,则将显示安全会话。


阅读 242

收藏
2020-06-16

共1个答案

一尘不染

我添加以下内容只是为了显示适用于我的完整示例。

将以下内容放在WEB-INF / jetty-web.xml中

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="sessionHandler">
        <Get name="sessionManager">
            <Set name="secureCookies" type="boolean">true</Set>
        </Get>
    </Get>
</Configure>
2020-06-16