我在生产环境中使用Tomcat,在测试环境中使用码头(通过jetty-maven-plugin)。
Tomcat在jsessionid- cookie上设置安全标志,当它通过安全通道(https)发送时,这对我来说似乎是个好主意,因为当用户单击http时,它可以防止会话暴露://-link。但是码头不是这样!
我想强制Jetty像Tomcat一样,并始终在通过安全通道发送的jsessionid- cookies上设置安全标志,因为否则,我的测试环境与生产环境的行为将有很大不同。但是我找不到任何配置选项可达到此目的。
我也想知道这是否是Jetty中的安全性漏洞。由于未将通过安全通道发送的jsessionid- cookie标记为安全,因此如果用户切换回不安全通道,则将显示安全会话。
我添加以下内容只是为了显示适用于我的完整示例。
将以下内容放在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>