WebSupport blog

Ako na bezpečné heslá v PHP

Prihlasujú sa na vašej stránke používatelia pomocou hesla? Ak áno, treba rátať s tým, že väčšina ľudí používa na zabezpečenie svojho účtu jednoduché a pre nich ľahko zapamätateľné heslá. „Ideálne“ pre všetky služby rovnaké heslo. Preto na vás padá dosť vysoká zodpovednosť tieto heslá čo najlepšie ochrániť. Ako teda na bezpečné heslá v PHP?

Pevné verím, že dnes sa už nenájde programátor, ktorý by heslá ukladal v databáze v plain texte (presne tak, ako ich človek vyplnil). Bohužiaľ bežnou praxou ešte stále ostáva využívať na tieto účely jednoduché hashovacie funkcie ako md5(), sha1() a podobne. Tie však vznikli kvôli úplne inému účelu, ako je zabezpečovanie hesiel. PHP od verzie 5.5 na to ponúka jednoduchú sadu funkcií:

$encrypted = password_hash("tajneheslo", PASSWORD_DEFAULT);
// $2y$10$0c.UyV1FqPecM0DOoqiH6uS0/D/0NtxBGtEMUjM6.Mn6bmZmvDMOu

V premennej $encrypted máme teraz unikátny hash pre vstupné heslo. Práve túto hodnotu si uložíme do databázy k používateľovi pre overenie hesla pri ďalšom prihlasení. Pre tento úkon využijeme druhú z dostupných funkcií:

if(password_verify("tajneheslo", $encrypted)) {
// spravne heslo, prihlasim pouzivatela
} else {
// nespravne heslo
}

Celý postup je jednoduchý na implementáciu a z hľadiska bezpečnosti získate hneď niekoľko výhod:

Nebeží vaša stránka na PHP 5.5, alebo vyššej verzii? V našom admine dokážete prepnúť verziu na novšiu jedným klikom. Okrem sady týchto funkcií získate mnoho ďalších noviniek a vaša stránka môže v konečnom dôsledku pobežať rýchlejšie.

[mc4wp_form]

Komentáre