in reply to Paranoid about web application security

I hope you've already done this, but I see so many sites that don't that it bears repeating. Make sure your users are already on a secure server SSL connection before they type in login and password.

I would definitely push for apache over IIS on Win2k, if you can't get off completely to a 'NIX box. More flexibility, more modules, more security.
  • Comment on Re: Paranoid about web application security

Replies are listed 'Best First'.
Re^2: Paranoia
by basje (Beadle) on Aug 09, 2005 at 21:07 UTC
    SSH is not strictly necessary, only for transmitting confidential information (like transmitting orders, creditcard info and changing passwords). You can keep passwords perfectly safe over an unencrypted link.

    If you enforce logging in over ssh you get extra complications with cookies/sessions, unless the whole site runs under https.

    A safe way to use logins over plaintext is the following: Store only the md5 of the password in your DB (we'll call this md5pw here).

    Now, send a unique random number to the client (sessionId will work well). Have the client take the typed password, and (in JavaScript) do md5(md5(password)+sessionId). Send the result, along with the username. You can verify it on the server side easily, as you have the sessionId, the md5pw and the username. The password is never sent, and neither is the md5pw, only a sequence that changes with every session.

    Eve cannot do anything with it. Mallory could hijack the session, but you have that problem in any session based site. You can solve that by including a checksum.

    One could opt for this scheme and have the payments handled by a merchant, to which you would link (or use paypal). That would alleviate the need for the ssh, which would be a hassle to implement well under windows.

      If somebody has a login/pw form on their home page, I can't see how it is safe, unless they are doing what you suggest with every home page visit. Please enlighten me. :)