Matrix12
18.10.2015, 12:33:28
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
18.10.2015, 13:49:22
Matrix12
18.10.2015, 14:31:57
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
18.10.2015, 16:41:14
A w jakim celu chcesz dekodować hasło? Przecież głównym zadaniem hashowania hasła jest to, aby go nie "odhashować"?
// w normalnym świecie robisz to tak:
$rawPassword = 'raw';
$salt = $myEntity->getSalt();
$hashedPassword = $myEntity->getPassword();
$encoder = new PasswordEncoder();
$encodedPassword = $encoder->encode($raw, $salt);
if($encodedPassword === $hashedPassword)
{
echo "password is correct"; }
Matrix12
19.10.2015, 16:36:24
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
19.10.2015, 23:46:11
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
20.10.2015, 05:55:19
Myślałem że wystarczy dopisać coś w security.yml aby zrobił mi bcrypt dodatkową sól, czy to prawda ?
Crozin
20.10.2015, 07:40:59
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.