I am building a secure login system and would like some opinions on what I
have so far (please pick it apart):

1. Submitting login form over SSL, no brainer
2. Using cfqueryparam everywhere, another no brainer
3. Password field in the database is called something other than password,
pw, etc
4. Password is one way encrypted using Hash(), encrypted version stored on
db
5. In the ColdFusion code, the encrypted version of the pw is never selected
from the db - I assume this is irrelevent, but better be on the safe side
6. Login form field names have session key appended to them to prevent the
browser remembering login details for the user (no remember me tickbox)
7. Password can only be changed by the user entering current password and
new password when logged in

I think this is all sound so far but I am really unsure about the best way
of resetting passwords when a user has forgotten their password. Currently,
I have this:

1. User requests password change instructions to be sent to their registered
email address by entering both their login name and email address: if the
details match - the instructions are sent (if they don't remember those
details they can ask the administrator, its a small office).
2. When the request is made, a 32 character  'temporaryLoginKey' is created
and a hash of this is stored in the login table. The unhashed key is sent to
the user's email as part of a web address (i.e.
www.site.com/index.cfm?event=resetPassword&tempLoginKey=27JFl49580KFj45687KJGF459
)
3. The user visits the url sent to them and is presented with a change
password form in which they are required to enter their login name and new
password
4. Once the user has changed their password, the tempKey is cleared and
resulting calls to the temp address result in an access denied message or
some such

Am I missing anything obvious or is anything I am doing plain wrong? I do
not need to build fort knox here, simply the most secure login possible on
zero budget (it also has to be a minimal PITA for the users)

Thanks in advance :)

Dominic


-- 
Blog it up: http://fusion.dominicwatson.co.uk


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298005
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to