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

Jak implementovat funkci zapamatovat si mě?

Řekněme, že název databázové tabulky pro trvalý soubor cookie je pcookies s následujícími sloupci:

  • id_cookie (CHAR)
  • id_uživatele (INT)
  • vypršení platnosti (DATETIME)
  • sůl (CHAR)

Postup vytvoření souboru cookie:

  1. Po úspěšném přihlášení vytvořte v databázi záznam cookie pod jedinečným ID. Můžete jej vygenerovat pomocí hash_hmac('sha512', $token, $salt), kde $token=uniqid($user_id, TRUE) a $salt=md5(mt_rand()).
  2. Uložte „ID uživatele“, „Doba platnosti“ a „Sůl“ spolu s „ID souboru cookie“ do databáze.
  3. Uložte 'cookie id' a 'token' do cookie.

Kroky ověření:

  1. Pokud je nalezen trvalý soubor cookie, nejprve zkontrolujte, zda je záznam dostupný v databázi.
  2. Pokud je záznam k dispozici, zkontrolujte, zda platnost souboru cookie vyprší či nikoli.
  3. Pokud platnost souboru cookie nevyprší, ověřte ID souboru cookie pomocí $cookie_id ==hash_hmac('sha512',$token_from_cookie,$salt_from_db).
  4. Jakmile je soubor cookie ověřen, odstraňte jej z databáze a vytvořte nový soubor cookie podle výše uvedených kroků pro vytvoření souboru cookie.
  5. Pokud je soubor cookie shledán jako neplatný, vymažte soubor cookie ze zařízení a odstraňte všechny ostatní záznamy o souborech cookie uživatele z databáze, všimněte si použití o pokusu o krádež a přejděte k procesu ručního přihlášení.

Poznámky:

  • Když je relace dostupná, ignorujte kontrolní soubor cookie.
  • Po odhlášení vymažte soubor cookie spolu se záznamem databáze.
  • Nikdy nedovolte uživatelům provádět citlivé požadavky, jako je změna hesla nebo zobrazení informací o kreditní kartě z trvalého přihlášení pomocí cookie. Vyvolejte heslo pro přihlášení a přidejte příznak do relace, abyste umožnili všechny další operace.


  1. Příklady WEEKOFYEAR() – MySQL

  2. Funkce vs. uložená procedura na serveru SQL

  3. Složitosti NULL – 2. část

  4. tisk hodnoty proměnné v postgresql