Chris mentions several very important password-related tips here.  Just  
wanted to add a few things.

With respect to number 5, it would be easier to prevent the second user  
from logging in than it would be to invalidate the first session and  
allow the second session to become active, however it is important that  
you do it the way Chris describes.  Invariably, someone's browser will  
crash in the middle of a session, and they will need log back in to the  
application, therefore the logic must be such that the old session gets  
blown away and the new session is given precedence.

Couple of additional tips:

1. Provide a logout/logoff button.  Make it prominent and encourage  
people to use it.  If your users are used to logging out of your  
application, it will reduce the possibility of someone picking up  
someone else's session on the same workstation, even inadvertently.

2. Use short session expiration intervals.  It can sometime be  
inconvenient for users to have to log back in after they have been  
distracted by a phone call or a few emails, however it does make for a  
more secure system.

3. Consider using the hash() function and storing passwords as MD5  
hashes rather than plain text.  The advantage is that the MD5 is  
one-way hash, which means that it is not currently possible to reverse  
it and discover what the original string was.  This is good for two  
reasons.  First, if your database is compromised, your passwords remain  
secure (albeit, if your database is compromised, it would be easier to  
steal data directly from the database than to log in as someone, but at  
least users who use the same password across accounts will have their  
other account compromised).  Second, it actually prevents people who  
are supposed to have access to the database like your developers from  
seeing passwords in clear text, as well.  Again, this mostly serves to  
keep other accounts secure, but is generally a good practice.  Note  
that the disadvantage of storing passwords as hashes is that you cannot  
recover people's passwords for them.  Consider using the password hint  
"magic question" paradigm to get around this.

4. Don't provide a "remember me" checkbox on your login page.  Make  
people authenticate each and every time.  Again, not overly convenient,  
but more secure.

Christian


On Monday, December 30, 2002, at 07:08 PM, Chris White wrote:

> The post should have been with this message:
>
> I have used AuthintiX and it is quite nice.  I have noticed a web
> hosting company that offers it with their plans when I was looking for
> something else.  Other things to consider are:  1.  Required min.
> password length, 2.  Special characters required within the password,  
> 3.
> Password case sensitive, 4.  Password expiration every 30 days ect., 5.
> User only allowed to be logged in once, if two users try to sign in
> using the same user id then blow away the current user session which
> allows only one user to be logged in, 6.  Min. length for the user id.
>
> Chris
>
>
>
> -----Original Message-----
> From: Ian Skinner [mailto:[EMAIL PROTECTED]]
> Sent: Monday, December 30, 2002 5:58 PM
> To: CF-Talk
> Subject: User Name/Password Concepts
>
>
> I am writing a User ID/Password login in for a commercial, registered
> members only type, Internet site.  Not adult orientated if you care  
> *S*.
>
>
> I've written simple CF Login functions before, but this current project
> that is going to require a little more true security then I've dealt
> with before. I'm asking all the guru's and other experienced CF
> developers if you can help with some ideas.  Basically I want to  
> provide
> a fairly secure site that doesn't turn away potential
> users/members/customers.
>
> What I'm interested in is comments and ideas on balancing Security
> verses User Convince.  Also, what issues do I need to consider when I'm
> building this to increase the difficulty to hack my code and/or users
> logins as much as practical.  Would I want to blend other security
> features in to this (NT Security for example)?
>
> Ian Skinner
> Developer
> Ilsweb
> [EMAIL PROTECTED]
>
>
>
> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. http://www.fusionauthority.com/signup.cfm

Reply via email to