Re: Major security issue?

From: Ray at <%=sLocation%> [MVP] (%=sLocation%)
Date: 02/01/04


Date: Sun, 1 Feb 2004 04:33:04 -0500


"Keith" <keith@keithadler.com> wrote in message
news:7c0f01c3e881$00918d70$a001280a@phx.gbl...

> This is predictable in an insecure product.

I can loosen all your lugnuts with a standard crossbar wrench, too. Does
that make your car an insecure product? If you think it does, use >=3 wheel
locks on each of your wheels.

> I'm not
> trying to act as if I discovered something new or Earth
> shattering, but I am quite surprised there is nothing in
> place in ASP.Net to protect user sessions from being
> hijacked.

There is, real sessions, although that is arguable as well. And this has
nothing to do with what server-side technology you choose to use.

> It seems to me that the session IDs have been
> problematic since ASP first came about. In ASP.Net they
> are still for some reason handed out in a fashion that
> means the same ID could be sent out to the same browser
> even after a Session.Abandon().

Even if this happened, would it matter? It'd still be a new session.

> It doesn't make sense
> that Microsoft couldn't do something as simple as encrypt
> the user agent and source IP into the session GUID if the
> user wanted to lock the source and device of a request
> down to a particular computer/network.

That data is meaningless though. When you have 1000 computers created from
the same image all sitting behind the same firewall, for example.

> From an
> architectural standpoint I realize that this in itself
> would add some overhead to IIS because every HTTP request
> would have to be checked against a lookup, but with HTTP
> keep-alives this check would only need to occur once on
> the same connection. I also realize that someone could
> use this to DoS a server by sending lots of HTTP requests
> with random IDs that would have to decoded and matched up
> against connections, but I'm sure that intrusion
> detection systems could be made to deal with this issue.
> The other option of course is to not use cookieless
> sessions under the anonymous user configuration and rely
> on an in-memory cookie which is obviously a little less
> accessible.

Cookieless sessions are just an alternative. If you're that worried about
them, don't use them. This is not a design flaw in ASP; this is just a
result of the technology that you're using and the way it works. If you
choose to use querystrings to identify users, it doesn't matter what kind of
server-side technology you use if you're catering to the cookie-paranoid
people.

> In either situation though, this seems like
> an incredible option to not provide ASP users.

I keep having flashbacks to "You are already logged into another
workstation" messages from Novell clients after your computer blue screens.
I don't know why, but I am. It's really foolish to build something into a
product that can often give false positives. What you're suggesting would
have that potential.

-- 
Ray at home
Microsoft ASP MVP


Relevant Pages

  • Re: Application Scope variables ?
    ... ASP' application is an object with a method "lock" to handle attempts to ... change a variable from two or more sessions at a time. ... So if there is nothing like that in PHP - thanks - you saved me time lokinmg ... Does ASP even guarantee that several ...
    (alt.php)
  • Re: Application Scope variables ?
    ... ASP' application is an object with a method "lock" to handle attempts to ... change a variable from two or more sessions at a time. ... So if there is nothing like that in PHP - thanks - you saved me time lokinmg ... Does ASP even guarantee that several ...
    (comp.lang.php)
  • Re: Page Hierarchy confusion...
    ... > VB.NET as your supporting language, you have to take another step back ... > There are also a lot of ASP to ASP.NET books out there that are invaluable ... > Side Note, sessions arent't all that bad anymore, you can have them managed ... >> Product info is persisted by using hidden fields. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Using GLOBAL.ASAX with Classic ASP?
    ... to the SQL provider for sessions it won't work at all). ... Your statement on the SQL provider is not applicable to our sitiation. ... I would prefer much more to workaround the ASP issue I have with ASP alone. ... (just register the last request date/time count for all sessions and count ...
    (microsoft.public.dotnet.framework.aspnet)
  • Using useuri with security: Keep returning to login page
    ... I've tried turning off cookies in FireFox and turning on cookieless ... sessions in the forms element inside the authentication element (I set ... the cookieless attribute to UseUri). ...
    (microsoft.public.dotnet.framework.aspnet.security)