Jak bezpiecznie przechowywać hasła w PHP
Przechowywanie haseł użytkowników określa w jaki sposób dbamy o ich bezpieczeństwo. Powszechna praktyka to używanie funkcji skrótu, które tworzą skrót hasła wprowadzonego przez użytkownika, który w teorii jest nieodwracalny(nie można ze skrótu uzyskać hasła). W praktyce jednak istnieją tak zwane tęczowe tablice(ang. rainbow tables), które w dość szybki sposób z wprowadzonego hasha(rezultat funkcji skrótu) odszukują w bazie hasło. Nasuwa się więc pytanie jak w poprawny sposób zabezpieczyć hasła użytkowników.
Czego nie należy robić by bezpiecznie przechowywać hasła w PHP
Nigdy nie określaj limitu znaków w haśle
Nie określaj znaków, które pojawiają się w haśle. Jeśli ktoś chce mieć $%#$ w haśle pozwól mu na to
Nigdy nie zapisuj haseł, które nie są zaszyfrowane/zahashowane
Nie zapisuj haseł używając funkcji MD5() oraz SHA1() gdyż w dzisiejszym świecie nie są bezpieczne z uwagi na moc obliczeniową komputerów, klastrów itp.
Nie wysyłaj haseł do użytkowników e-mailem(np podczas rejestracji)
W przypadku wykrycia ataku wymuś zmianę hasła dla wszystkich użytkowników przed ponownym zalogowaniem się do systemu
[…]