Visa ett inlägg
Oläst 2008-01-17, 11:55 #64
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
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
}
SimonP är inte uppkopplad   Svara med citatSvara med citat