GoranStimac.com

Kako vam mogu pomoći

Informirajte se i učite

Povežimo se

Novo u Symfony 5.3: Komponenta PasswordHasher

Hashing lozinke postupak je primjene kriptografske hash funkcije za pretvaranje izvorne lozinke u običnom tekstu u drugu nesagledivu vrijednost koju je nemoguće invertirati.

Iz povijesnih razloga, Symfony koristi izraz “password encoding” kada bi se stvarno trebao odnositi na “password hashing”. To je izazvalo određenu zbunjenost kod ljudi koji uče Symfony, pa je odlučeno da se to jednom zauvijek popraviti u Symfonyju 5.3.

Zato se u Symfonyju 5.3 uvodi nova komponenta nazvana PasswordHasher. Ova komponenta izdvaja sav postojeći kod i značajke povezane s “password encoding” i preimenuje ga u “password hashing”. Sve značajke “encoding” zastarjele su u Symfonyju 5.3 i uklonit će se u Symfony 6.0.

API novog hashera sličan je prethodnom i nešto je bliži PHP ugrađenom API-ju za hashiranje lozinki:

namespace Symfony\Component\PasswordHasher;

interface PasswordHasherInterface
{
    public function hash(string $plainPassword): string;

    public function verify(string $hashedPassword, string $plainPassword): bool;

    public function needsRehash(string $hashedPassword): bool;
}

Ova nova komponenta može se koristiti neovisno od ostalih značajki Symfonyja u bilo kojoj PHP aplikaciji. Za postojeće programe Symfony, nova komponenta uključuje se automatski prilikom instaliranja/ažuriranja sigurnosnog paketa, tako da ne morate mijenjati ovisnosti.

Učinak u kodu vaše aplikacije bit će nizak, ali možda ćete trebati unijeti neke manje izmjene. Na primjer, naredba security: encode-password sada se naziva security: hash-password. Usluga security.password_encoder sada se naziva security.password_hasher, UserPasswordEncoderInterface sada je UserPasswordHasherInterface itd.

Glavna promjena bit će u sigurnosnoj konfiguraciji, gdje trebate encoders zamijeniti sa password_hashers:

# config/packages/security.yaml
-encoders:
+password_hashers:
     App\Entity\User:
         algorithm: 'auto'
Prijašnji post

Web razvoj u 2021. - Praktičan vodič

comments powered by Disqus