FYI<br /><br />http://code.google.com/p/owasp-esapi-java/issues/detail?id=70<br /><br />http://code.google.com/p/owasp-esapi-java/issues/detail?id=71<br /><br />I created this as seperate issues in case the latter doesn&#39;t make it into the 2.0 release, it can be pushed into the 2.1 release.<br /><br />On Dec 4, 2009 10:36am, Chris Schmidt &lt;chrisisbeef@gmail.com&gt; wrote:<br />&gt; I will add config and take a look at the forwarding issue over the weekend.<br />&gt; <br />&gt; Sent from my iPwn<br />&gt; <br />&gt; On Dec 4, 2009, at 9:45 AM, &quot;Jeff Williams&quot; jeff.williams@owasp.org&gt; wrote:<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; Making it configurable makes sense. Now that you’ve got me<br />&gt; thinking about it, we should probably also address the access-control bypass<br />&gt; problem with forwards as well.  From the Java tutorial…<br />&gt; <br />&gt;  <br />&gt; <br />&gt; “Security constraints<br />&gt; work only on the original request URI and not on calls made throug a<br />&gt; RequestDispatcher (which include  and ).<br />&gt; Inside the application, it is assumed that the application itself has complete<br />&gt; access to all resources and would not forward a user request unless it had<br />&gt; decided that the requesting user also had access.”<br />&gt; <br />&gt;  <br />&gt; <br />&gt; I’ve found open forwards in a number of apps over the<br />&gt; years that allow bypassing access control rules – including those in an<br />&gt; external device like a SiteMinder.  Would be nice to find a way to fix<br />&gt; this problem elegantly.<br />&gt; <br />&gt;  <br />&gt; <br />&gt; --Jeff<br />&gt; <br />&gt;  <br />&gt; <br />&gt;  <br />&gt; <br />&gt; <br />&gt; <br />&gt; From: Chris Schmidt<br />&gt; [mailto:chrisisbeef@gmail.com] <br />&gt; <br />&gt; Sent: Thursday, December 03, 2009 10:49 AM<br />&gt; <br />&gt; To: Jeff Williams<br />&gt; <br />&gt; Cc: OWASP-ESAPI<br />&gt; <br />&gt; Subject: Re: [OWASP-ESAPI] SecurityRequestWrapper<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt;  <br />&gt; <br />&gt; I can see a lot of situations where this makes sense, but<br />&gt; what to do if you need to do a server side forward to someplace that is<br />&gt; publicly accessable? I know in our codebase at work, we very frequently need to<br />&gt; do this, and a 301 is not acceptable for SEO reasons? It seems like at minimum,<br />&gt; this behavior should be configurable. Perhaps a configuration option for the<br />&gt; SecurityWrapper so that multiple filters could be setup which have different<br />&gt; configurations?<br />&gt; <br />&gt; <br />&gt; <br />&gt;  <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; Thoughts?<br />&gt; <br />&gt; <br />&gt; <br />&gt; On Thu, Dec 3, 2009 at 4:07 AM, Jeff Williams jeff.williams@owasp.org&gt; wrote:<br />&gt; <br />&gt; This is intended to make sure that developers put resources<br />&gt; inside web-inf where they can&#39;t be force browsed to.<br />&gt; <br />&gt; <br />&gt; <br />&gt; --Jeff<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; On Dec 3, 2009, at 1:46 AM, Chris Schmidt chrisisbeef@gmail.com&gt;<br />&gt; wrote:<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; Is there a good reason that the getRequestDispatcher method<br />&gt; in this<br />&gt; <br />&gt; wrapper requires the path to begin with WEB-INF?<br />&gt; <br />&gt; <br />&gt; <br />&gt; In my experience, this seems completely counter intuitive and actually<br />&gt; <br />&gt; the opposite of what I would envision the overriden method to do.<br />&gt; <br />&gt; <br />&gt; <br />&gt; I think this should instead be checking for traversal issues and<br />&gt; <br />&gt; making sure the requested path does NOT start with WEB-INF but maybe I<br />&gt; <br />&gt; am missing something?<br />&gt; <br />&gt; <br />&gt; <br />&gt; Sent from my iPwn<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; _______________________________________________<br />&gt; <br />&gt; OWASP-ESAPI mailing list<br />&gt; <br />&gt; OWASP-ESAPI@lists.owasp.org<br />&gt; <br />&gt; https://lists.owasp.org/mailman/listinfo/owasp-esapi<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt;  <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt;