 |
Mycket flitig postare
|
|
Reg.datum: May 2006
Inlägg: 832
|
|
Mycket flitig postare
Reg.datum: May 2006
Inlägg: 832
|
Att lagra känsliga uppgifter i en cookie bör man vara försiktigt med, själv sparar jag inga egna uppgifter i cookies, det som enda som lagras i cookies är PHPs egna slumpnummer PHPSESSID.
Så här gör jag för att få minimera säkerhetsproblem:
Pseudo-kod för Login-sida med PHP:
1. Visa login sidan för klienten, klienten fyller i uppgifterna och POSTar
2. Rensa POST variablerna från ej tillåtna tecken och kontrollera ev. tomma fält
3. session_start() för att skapa PHP sessionen (PHP skapar cookien PHPSESSID)
4. Om variabel $_SESSION['count'] ej satt, sätt den till 1
5. Om variabel $_SESSION['count'] == 5, presentera en sida som säger "För många
felaktiga försök, prova igen om xx minuter", exit;
6. Kontrollera användarnamn och lösenord mot min databas
7. Om fel användarnamn eller lösen, öka $_SESSION['count'] med 1 och gå tillbaka till punkt 1.
8. Om anv.namn + lösenord stämmer:
Skapa $_SESSION['hash'] = md5(PHPSESSID + user_id + $_SERVER['REMOTE_ADDR])
Skapa $_SESSION['userid'] = userid från databasen
9. Visa klientens skyddade sida
Underliggande skyddade sidor startas alltid med check_login();
Pseudo-kod:
funktionen check_login()
{
session_start();
kolla att $_SESSION['hash']==md5(PHPSESSID + $_SESSION['userid'] + $_SERVER['REMOTE_ADDR])
Om det ej stämmer , presentera inloggningsidan, exit;
Om ok, bara att gå vidare och visa den skyddade sidan för klienten
}
|