[nycphp-talk] user authentication security structure
Chris Hubbard
chubbard at next-online.net
Wed Feb 4 20:14:40 EST 2004
No takers?
Chris Hubbard wrote:
> All,
> Thanks for all your suggestions and feedback to date. The following
> is a description of the login and user-authentication mechanism I'm
> planning to implement in our application, based on the discussion here
> and other research I've done. If you've got ways to improve it,
> please make suggestions.
>
> Assumptions:
> * all client browsers will have cookies enabled. If they don't they
> get redirected to a page that tells them to enable cookies before they
> have the chance to log in.
> * all pages (especially login) will be within SSL
> * will be using custom session handlers (aka Sean's article in php|arch)
>
> Requirements:
> * users can bookmark any page in the application. When the user tries
> to return to a bookmarked page after the session has expired, then
> they are presented with the login page. after a successful login
> they're redirected to the bookmarked page.
>
> Flow:
> * user enters their username and password and submits the form
> * code makes sure the data submitted is "clean"
> * code checks username and password against values in db
> * if they match create a cookie that will expire in 10 (or so) seconds
> * create a session
> * redirect to home page or bookmarked page.
> * at home page read the temp cookie and the session data, if they
> correspond create a new cookie that will expire in N minutes.
> * when user clicks "log out" destroy the session and either empty the
> cookie or fill it with garbage.
>
> Thoughts:
> I'm thinking of putting a timestamp into the login cookie, so if it's
> presented and it's too old, I can redirect to the login page
> I may add a counter to the login cookie, if you don't get in after 3
> or N attempts you get redirected to some (random) web address.
> I've been thinking about using the cookie ID to sign and encrypt the
> session ID and then using the session ID to sign and encrypt the
> cookie ID but that might be overkill.
> I may put the login page into it's own folder ./login/login.php, and
> have the login cookie be specific to that folder.
>
> Once I get this flat I'll make the pattern publicly available with
> diagrams and documentation. I'm not sure whether it makes sense to
> include the code (we use Oracle with some internal classes), so
> probably won't include complete code.
>
> Thoughts, comments, suggestions?
> Chris
>
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
More information about the talk
mailing list