Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony2][Symfony]Hasowanie hasła
Forum PHP.pl > Forum > PHP > Frameworki
Matrix12
Z uwagi na poprawę security chce dodatkowo użyć soli przy generowaniu, odczywywaniu hasła.. Jak poprawnie odszyfrować hasło? Chodzi mi o korzystanie z soli, czyli w encji generuje jakaś unikalną sol, zapisuje ją w bazie ale jak potem encoder ma to odczytać, jak to przerobić? Czy on automatycznie weźmie to poduwagę?
Damonsson
Zostaw Symfony co Symfonowe http://symfony.com/doc/current/book/securi...user-s-password
Matrix12
Nie bardzo rozumiem, w linku nie ma żadnej informacji jak użyć soli, lub jak dekodować hasło z użyciem soli tak aby użytkownik był poprawnie autoryzowany.
kpt_lucek
A w jakim celu chcesz dekodować hasło? Przecież głównym zadaniem hashowania hasła jest to, aby go nie "odhashować"?

  1. // w normalnym świecie robisz to tak:
  2. $rawPassword = 'raw';
  3.  
  4. $salt = $myEntity->getSalt();
  5. $hashedPassword = $myEntity->getPassword();
  6.  
  7. $encoder = new PasswordEncoder();
  8. $encodedPassword = $encoder->encode($raw, $salt);
  9.  
  10. if($encodedPassword === $hashedPassword)
  11. {
  12. echo "password is correct";
  13. }
Matrix12
Chodzi mi o to że jak użyje soli do kodowania hasła czy symfony będzie w stanie identyfikować użytkownika poprawnie o to mi tylko chodzi, i co trzeba ustawić w configu aby to działało tylko tyle.
lucio1988
Ide używania soli polega:
- tworzysz sól
- tworzysz skrót, np sha1($sol . $pass), sól i hasło trzymasz w bazie
- przy autoryzacji porównujesz 2 ciągi znaków: $passDb i sha1($sol . $passFromForm)

dla poprawy bezpieczeństwa można stosować różne kombinacje (np stała sól w plikach PHP -> sha1($staticSalt . $pass . $dbPass), dzięki temu dane z bazy nic ci nie dadzą - nadal nie masz soli z PHP
haseł zakodowanych funkcjami skrótów nie rozszyfrujesz (teoretycznie - można stworzyć lub użyć istniejącej bazy i porównać, aby znaleźć ciąg źródłowy) - na tym one polegają
jeżeli chcesz poprawić bezpieczeństwo zainteresuj się bcrypt (najnowsza wersja Symfony wspiera bcrypt, nie wiem jak poprzednie)

polecam Ci przeczytać Symfony Best Practices (http://symfony.com/doc/current/best_practices/index.html), szczególnie rozdział o bezpieczeństwie (http://symfony.com/doc/current/best_practices/security.html)
Matrix12
Myślałem że wystarczy dopisać coś w security.yml aby zrobił mi bcrypt dodatkową sól, czy to prawda ?
Crozin
Bo wystarczy. Pamiętaj tylko, że bcrypt ma niejako wbudowaną sól, która działa mniej-więcej w taki sposób jak opisał to @lucio1988.
http://stackoverflow.com/questions/6832445...-built-in-salts
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.