Der på en måde tre svage led i sikkerhedskæden:
1) Sessionen
2) Password overførelse fra klient til server (el. lig.)
3) Data håndtering på server
pkt. 1 og 2 udspringer egentlig af samme brist: alt hvad der køre over HTTP-protekollen er i ren klar tekst, dette gælde både de session-cookies som sendes fra server til klient og de passwords som sendes fra klient til server - løsningen hedder sikker forbindelse, dvs. HTTPS. Jeg kan bare ikke hjælpe dig på det punkt, for det kan jeg heller ikke selv finde ud af. Du kan evt. overveje om dine data er så kritiske at de behøver denne beskyttelse.
Password på serveren er til gengæld nemmere: du tager bare et hash af dem inden du lægger dem ned i databasen, eks. i PHP:
$hash = md5($password);
Du skal bare være opmærksom på at du hasher password'et
inden du lægger det ind i din SQL-sætning, på den måde undgår du SQL-indsættelsesangreb - som også skal har et ord med på vejen:
SQL-indsættelsesangreb er, når en hacker bruger eks. en hjemmesides html-form til at skrive kommandoer til en database.
Betrakt:
$result = mysql_query("SELECT * FROM users WHERE name=$name;");
Men hva nu hvis:
$name="''; DROP TABLE users"
så ville querien slette tabellen 'users' i stedet for at slå en bruger op!
Det er derfor meget vigtigt at du har fuldstændig kontrol over hvad du beder databasen om. Et ordsprog kunne være:
Never trust an input.
Hvis du koder efter dette, vil du nå langt med din sikkerhed og undgår mange dumme fejl.
Mht. til passwords kan du også bruge PHP's CrackLib functioner til at sikre dig at dine brugere vælger nogle stærke passwords.
link til reference:
http://dk.php.net/manual/en/ref.crack.phpDet var vist alt.. Held og lykke med dine anstrengelser
- karmazilla -