maj: sémantique, révision vérification password #3
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@ -4,4 +4,4 @@
|
||||
// Utilisation du pipeline partagé pour les applications Symfony de Cadoles
|
||||
// Le nom de l'image Docker passée en paramètre vous permet de préciser l'environnement de test
|
||||
// de votre application Symfony
|
||||
symfonyAppPipeline("ubuntu:20.04")
|
||||
symfonyAppPipeline("ubuntu:22.04")
|
@ -27,7 +27,7 @@ class PasswordEncoder implements LegacyPasswordHasherInterface
|
||||
}
|
||||
rmasson marked this conversation as resolved
Outdated
|
||||
|
||||
/**
|
||||
* Pas utilisé
|
||||
* Pas utilisé, mais on doit le garder pour le implements
|
||||
*/
|
||||
public function hash(string $plainPassword, string $salt = null): string
|
||||
{
|
||||
|
@ -80,12 +80,7 @@ class SQLLoginUserAuthenticator extends AbstractAuthenticator
|
||||
if ($remoteHashedPassword) {
|
||||
try {
|
||||
// Comparaison remote hash et hash du input password + salt
|
||||
// dump($remoteHashedPassword, $plaintextPassword, $remoteSalt, password_verify($plaintextPassword, $remoteHashedPassword));
|
||||
$this->passwordHasher->verify($remoteHashedPassword, $plaintextPassword, $remoteSalt);
|
||||
// if ($this->passwordHasher->needsRehash($remoteHashedPassword)) {
|
||||
// $hash = $this->passwordHasher->hash($plaintextPassword);
|
||||
// $this->sqlLoginService->updatePassword($login, $hash, null);
|
||||
// }
|
||||
$attributes = $this->sqlLoginService->fetchDatas($login);
|
||||
$user = new User($login, $remoteHashedPassword, $attributes, $rememberMe);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user
Je pense que ce code ne sera pas compatible avec les applications ayant choisies d'utiliser les algorithmes
argon2id
,scrypt
etbcrypt
(qui sont d'ailleurs les recommandations OWASP 1 aujourd'hui).Normalement, en PHP on utilise les méthodes
password_hash()
2 etpassword_verify()
3 pour utiliser ces algorithmes (et d'ailleurs le salt est directement stocké dans le hash final 4).Autre chose: la méthode assume un certain format pour la concaténation des différents éléments à hacher (
$plainPassword.$salt.$this->pepper
). Il est fort peu probable que cette séquence soit toujours respectée dans toutes les applications. À mon avis il serait certainement préférable d'utiliser un patron (avec la méthodestrstr()
5 par exemple) pour permettre à l'utilisateur de spécifiquer le format de concaténation.https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html ↩︎
https://www.php.net/manual/en/function.password-hash.php ↩︎
https://www.php.net/manual/en/function.password-verify.php ↩︎
https://stackoverflow.com/questions/40993645/understanding-bcrypt-salt-as-used-by-php-password-hash ↩︎
https://www.php.net/manual/en/function.strtr.php ↩︎
j'ai utilisé les fonction password_algos() et hash_algos() pour faire la différence entre les algos, pour utiliser hash() ou password_hash()
Mais effectivement le pattern est pas pris en compte