> This is so easy to implement yourself it barely even bears discussing.

> Create an abstract Action super-class, check to see if cookies are
> enabled, and if they aren't, block access and give the user an error
> message to that effect.  You could have written it in the time you
> composed this email.
What you describe doesn't answer my question.  It only solves half of
the problem.  Struts still calls encodeURL (or encodeRedirectURL) which
will put the session id in the URL on at least the first call of the
session, because it is not yet known if the user has cookies enabled or
not.  So, looking at the referer exploit, any 3rd party banner ad
providers on the first page of a struts-enbabled site will be given the
jsessionid, even if the site designers used the solution you describe.

Also, I could swear that I'm seeing the jsessionid crop up on the URL on
pages after the first page even with cookies enabled in the client.  I
suppose this is the fault of my app server, which is implementing
HttpServletResponse.encodeURL.  Perhaps others are seeing this as well.

...
> From Craig:
> Session ids in cookies are no more secure than session ids in URLs --
they
> are just as susceptible to snooping even though they are not
physically
> visible.  If attacks via session id are an important issue for you,
you
> should be using SSL instead.
Using SSL to avoid session id attacks is not sufficient.  The two
scenarios I described are unique to jsessionid on the URL, and are
exploitable using SSL or not.  They can't happen if the jsessionid never
shows up on the URL.  So, the snooping scenario you describe is a
separate matter.  Sure, if a malicious 3rd party can sniff the packets,
and you are not using SSL, you are in trouble.  


With today's browser usage and site design practices, I personally feel
that the value of encodeURL's rewriting as an overall concept is
outweighed by the security implications that are unique to session id
URL rewriting.  Sure, I can probably find a way around it if my app
server supports it or I minimize it in my application, by why should
site designers be forced to do that by default.  I think many would take
security over compatibility, or at least be given the choice.  As a
Struts advocate, I'd like to see Struts embraced by more site
developers, so I wasn't exactly looking for a one-off solution.  


Tom
 


--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

Reply via email to