Re: Is my user system bad?
| From: | Andrei | Date: | Thu, 09 Feb 2006 09:44:38 +0000 |
| Subject: | Re: Is my user system bad? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-230144@lists.php.net to get a copy of this message | ||
Hi Peter,
I use about same system, but instead putting ids of tables into session variable (which is easy to guess) I use a md5( uniqid( rand(), true ) ) string and I create an enreg into online tables (similar to your session table) with this string as primary key. I also add into session a hashed variable with host. When I receive a request I check session variable ($_SESSION['session_id'] in your case) and also the hashed string.
For session timeout I delete the enreg from table online (session in your case). For this I have a function which is called at a request of any script at a resonable interval (like once 10 mins) and remove from table online every session that passed a number of seconds (which I defined). When a request comes with a session id, and I don't find it in online table I say that session is expired.
I'm not saying this is the best, this is what I use.
Regards,
Andy
Peter Lauri wrote:
Hi, I would like to get some comments about my user system. 1. A user logs in, the username and password is checked against the database 2. If correct it adds a row in my database "session" with member_id. $_SESSION['session_id'] will be set to the mysql_insert_id(). 3. To verify if someone is logged on or not, I have a function isLoggedOn() that checks if there is $_SESSION['session_id'] and it returns the member_id. If not logged in, the isLoggedOn() returns FALSE. 4. I user the member_id to retrive specific member information 5. To logout, I just unset $_SESSION['session_id'] Is this an ok system to continue to work on? Or is this a very weak system that is easy to break in to? I am thinking about setting an new variable $_SESSION['member_id'] so that I do not need to o a query every time to get the member_id. Thank you very much!