You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/06/20 09:58:37 UTC
svn commit: r1749287 - in /tomcat/trunk:
java/org/apache/catalina/core/StandardContext.java
webapps/docs/changelog.xml webapps/docs/config/context.xml
webapps/docs/security-howto.xml
Author: markt
Date: Mon Jun 20 09:58:37 2016
New Revision: 1749287
URL: http://svn.apache.org/viewvc?rev=1749287&view=rev
Log:
Change the default for Context.sessionCookiePathUsesTrailingSlash from true to false.
Modified:
tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/context.xml
tomcat/trunk/webapps/docs/security-howto.xml
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1749287&r1=1749286&r2=1749287&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Mon Jun 20 09:58:37 2016
@@ -696,7 +696,7 @@ public class StandardContext extends Con
* particularly IE, don't send a session cookie for context /foo with
* requests intended for context /foobar.
*/
- private boolean sessionCookiePathUsesTrailingSlash = true;
+ private boolean sessionCookiePathUsesTrailingSlash = false;
/**
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1749287&r1=1749286&r2=1749287&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Jun 20 09:58:37 2016
@@ -67,6 +67,13 @@
attempts during the lock out period will no longer reset the lock out
timer to zero. (markt)
</fix>
+ <update>
+ Change the default of the
+ <code>sessionCookiePathUsesTrailingSlash</code> attribute of the
+ <code>Context</code> element to <code>false</code> since the problems
+ caused when a Servlet is mapped to <code>/*</code> are more significant
+ than the security risk of not enabling this option by default. (markt)
+ </update>
</changelog>
</subsection>
<subsection name="Coyote">
Modified: tomcat/trunk/webapps/docs/config/context.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/context.xml?rev=1749287&r1=1749286&r2=1749287&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/context.xml (original)
+++ tomcat/trunk/webapps/docs/config/context.xml Mon Jun 20 09:58:37 2016
@@ -492,15 +492,23 @@
</attribute>
<attribute name="sessionCookiePathUsesTrailingSlash" required="false">
- <p>Some browsers, such as IE, will send a session cookie for a context
- with a path of /foo with a request to /foobar. To prevent this, Tomcat
- will add a trailing slash to the path associated with the session cookie
- so, in the above example, the cookie path becomes /foo/. However, with a
- cookie path of /foo/, IE will no longer send the cookie with a request
- to /foo. This should not be a problem unless there is a servlet mapped
- to /*. In this case this feature will need to be disabled. The default
- value for this attribute is <code>true.</code> To disable this feature,
- set the attribute to <code>false</code>.</p>
+ <p>Some browsers, such as Internet Explorer, Safari and Edge, will send
+ a session cookie for a context with a path of <code>/foo</code> with a
+ request to <code>/foobar</code> in violation of RFC6265. This could
+ expose a session ID from an application deployed at <code>/foo</code> to
+ an application deployed at <code>/foobar</code>. If the application
+ deployed at <code>/foobar</code> is untrusted, this could create a
+ security risk. However, it should be noted that RFC 6265, section 8.5
+ makes clear that path alone should not be view as sufficient to prevent
+ untrusted applications accessing cookies from other applications. To
+ mitigate this risk, this attribute may bet ste to <code>true</code> and
+ Tomcat will add a trailing slash to the path associated with the session
+ cookie so, in the above example, the cookie path becomes /foo/. However,
+ with a cookie path of /foo/, browsers will no longer send the cookie
+ with a request to /foo. This should not be a problem unless there is a
+ servlet mapped to /*. In this case this attribute will need to be set to
+ <code>false</code> to disable this feature. The default value for this
+ attribute is <code>false</code>.</p>
</attribute>
<attribute name="swallowAbortedUploads" required="false">
Modified: tomcat/trunk/webapps/docs/security-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/security-howto.xml?rev=1749287&r1=1749286&r2=1749287&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/security-howto.xml (original)
+++ tomcat/trunk/webapps/docs/security-howto.xml Mon Jun 20 09:58:37 2016
@@ -348,6 +348,15 @@
operating systems (this includes Windows) will disable a number of
security measures and allow, among other things, direct access to the
WEB-INF directory.</p>
+
+ <p>The <strong>sessionCookiePathUsesTrailingSlash</strong> can be used to
+ work around a bug in a number of browsers (Internet Explorer, Safari and
+ Edge) to prevent session cookies being exposed across applications when
+ applications share a common path prefix. However, enabling this option
+ can create problems for applications with Servlets mapped to
+ <code>/*</code>. It should also be noted the RFC6265 section 8.5 makes it
+ clear that different paths should not be considered sufficient to isolate
+ cookies from other applications.</p>
</subsection>
<subsection name="Valves">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org