Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
PHP, Mysql - Login system SHA512
30-03-2015, 19:51
#11
RE: PHP, Mysql - Login system SHA512
Smart, men har man nu lad os sige 100 logins i minuttet, så vil det da kræve en del server kapacitet, at "decrypte", eller krypte, og checke som man nok skal?
eller er jeg helt ude at skide her :)


SL - Zekcode
Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-03-2015, 20:35
#12
RE: PHP, Mysql - Login system SHA512
(30-03-2015, 19:51)Zekcode Skrev: Smart, men har man nu lad os sige 100 logins i minuttet, så vil det da kræve en del server kapacitet, at "decrypte", eller krypte, og checke som man nok skal?
eller er jeg helt ude at skide her :)


SL - Zekcode

Hvis du har 100 logins i minuttet kan det godt være at du skal genoverveje hele dit system. Du skal jo kun tjekke passwordet en gang per session, hvorefter du giver brugeren en token som gælder i et givent tidsrum. Hvis du nogensinde har brugt en API kender du nok den token/secret der skal sendes med ved hver request efter du har autoriseret med serveren. I browseren ligger den token så i en cookie (PHPSESSID). Hvis du på trods af dette stadig har 100 logins i minuttet, så har du nok også serverkapaciteten til at matche. I værste fald sætter du bare styrken lidt ned.

Noget af det lækre ved password_* funktionerne er, at de har funktionen password_needs_rehash. Hvis du bestemmer dig for at skifte styrke eller hashing algoritme, vil det være nemt at tjekke om koden skal rehashes når brugeren logger ind. For at sige det på en anden måde:
Hvis du bruger password-funktionerne korrekt og der engang går noget galt med blowfish, så kræver det kun at du opdaterer PHP og så vil din side automatisk rehashe dine brugeres adgangskode med den nye algoritme når de logger ind næste gang :)
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-03-2015, 21:37
#13
RE: PHP, Mysql - Login system SHA512
(30-03-2015, 20:35)Doctor Blue Skrev: Hvis du har 100 logins i minuttet kan det godt være at du skal genoverveje hele dit system. Du skal jo kun tjekke passwordet en gang per session, hvorefter du giver brugeren en token som gælder i et givent tidsrum. Hvis du nogensinde har brugt en API kender du nok den token/secret der skal sendes med ved hver request efter du har autoriseret med serveren. I browseren ligger den token så i en cookie (PHPSESSID). Hvis du på trods af dette stadig har 100 logins i minuttet, så har du nok også serverkapaciteten til at matche. I værste fald sætter du bare styrken lidt ned.

Noget af det lækre ved password_* funktionerne er, at de har funktionen password_needs_rehash. Hvis du bestemmer dig for at skifte styrke eller hashing algoritme, vil det være nemt at tjekke om koden skal rehashes når brugeren logger ind. For at sige det på en anden måde:
Hvis du bruger password-funktionerne korrekt og der engang går noget galt med blowfish, så kræver det kun at du opdaterer PHP og så vil din side automatisk rehashe dine brugeres adgangskode med den nye algoritme når de logger ind næste gang :)

Tusinde tak Blue, og det med rehash, er satme smart! :O, så skal man ikke til at lave en masse brugerene skal igennem, men kan næsten gøres automatisk, uden brugerens indblanding :)
tak :)

Sl - Zekcode
Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-03-2015, 22:02 (Denne besked var sidst ændret: 30-03-2015, 22:03 af Doctor Blue.)
#14
RE: PHP, Mysql - Login system SHA512
Her er et lille eksempel på hvordan den fungerer :)

// Filter input
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$clearpass = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

// Get hashed password from database
$st = $db->prepare('SELECT password FROM user WHERE username = ?');
$st->execute(array($username));
$hashedpass = $st->fetchColumn();

// Verify the password
if(password_verify($clearpass, $hashedpass)) {
// User is now authenticated
echo "Welcome $username!";
// Check if the password is using an old algorithm
if(password_needs_rehash($hashedpass, PASSWORD_DEFAULT)) {
// Update hashed password in database
$hashedpass = password_hash($clearpass, PASSWORD_DEFAULT);
$st = $db->prepare('UPDATE user SET password = ? WHERE username = ?');
$st->execute(array($hashedpass, $username));
}
} else {
exit("Incorrect username or password");
}
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-03-2015, 22:05
#15
RE: PHP, Mysql - Login system SHA512
UHH dit PDO :P

tak for scriptet, kunne være en fin måde for mig, lige at sætte mig ned og kigge på det der PDO sådan ordenligt :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)