sql >> Databáze >  >> RDS >> Mysql

Jaké jsou slabiny této metody ověřování uživatelů?

Udělejte si laskavost a použijte standardní knihovnu pro hašování vašich hesel.

Vzhledem k tomu, že zabezpečení bývá mnohem komplikovanější a s více neviditelnými možnostmi, než jaké by většina programátorů dokázala vyřešit sama, je použití standardní knihovny téměř vždy nejjednodušší a nejbezpečnější (ne-li jediná) dostupná možnost.

Standardní knihovna :
Podívejte se na:Přenosný rámec pro hašování hesel PHP :phpass a ujistěte se, že používáte CRYPT_BLOWFISH algoritmus, pokud je to vůbec možné.

příklad kódu pomocí phpass (v0.2):

require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

PHPass byl implementován v některých docela známých projektech:

  • phpBB3
  • WordPress 2.5+ a bbPress
  • vydání Drupal 7 (modul dostupný pro Drupal 5 a 6)
  • ostatní

Dobrá věc je, že se nemusíte starat o detaily, tyto detaily byly naprogramovány lidmi se zkušenostmi a zkontrolovány mnoha lidmi na internetu.

Ať uděláte cokoli, pokud se rozhodnete pro „Udělám to sám, děkuji ', nepoužívejte MD5a . Je to pěkný hashovací algoritmus, ale z bezpečnostních důvodů zcela nefunkční .

V současné době pomocí crypt , s CRYPT_BLOWFISH je nejlepší postup.
CRYPT_BLOWFISH v PHP je implementace Bcrypt hashe. Bcrypt je založen na blokové šifře Blowfish a využívá své drahé nastavení klíče ke zpomalení algoritmu.

Další informace o schématech ukládání hesel si také můžete přečíst Jeff Příspěvek na blogu o tom:Pravděpodobně ukládáte hesla nesprávně



  1. Spusťte uloženou proceduru MySQL pomocí příkazového řádku

  2. Zabijte postgresql relaci/připojení

  3. Vložte soubor do mysql Blob

  4. MySQL:Jak hledat pravopisné varianty? (Murrays, Murray's atd.)