Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menerapkan fitur ingat saya?

Katakanlah nama tabel database untuk cookie persisten adalah pcookies dengan kolom berikut:

  • cookie_id (CHAR)
  • id_pengguna (INT)
  • kedaluwarsa (DATETIME)
  • garam (CHAR)

Langkah-langkah pembuatan cookie:

  1. Setelah login berhasil, buat catatan cookie di database dengan id unik. Anda dapat membuatnya dengan hash_hmac('sha512', $token, $salt) di mana $token=uniqid($user_id, TRUE) dan $salt=md5(mt_rand()).
  2. Simpan 'user id', 'expiration time' dan 'salt' bersama dengan 'cookie id' di database.
  3. Simpan 'cookie id' dan 'token' di cookie.

Langkah autentikasi:

  1. Jika ada cookie persisten yang ditemukan, periksa dulu apakah record tersebut tersedia di database atau tidak.
  2. Jika catatan tersedia, periksa apakah cookie kedaluwarsa atau tidak.
  3. Jika cookie tidak kedaluwarsa, validasi id cookie dengan $cookie_id ==hash_hmac('sha512',$token_from_cookie,$salt_from_db).
  4. Setelah cookie divalidasi, hapus dari database dan buat cookie baru sesuai dengan langkah pembuatan cookie di atas.
  5. Jika cookie ditemukan tidak valid, hapus cookie dari perangkat dan hapus semua catatan cookie lain dari pengguna dari database, perhatikan penggunaan tentang upaya pencurian dan lanjutkan ke proses login manual.

Catatan:

  • Saat sesi tersedia, abaikan pemeriksaan cookie.
  • Setelah logout, hapus cookie bersama dengan catatan database.
  • Jangan pernah izinkan pengguna untuk menjalankan permintaan sensitif seperti perubahan sandi atau melihat informasi kartu kredit dari login cookie tetap. Minta kata sandi untuk masuk dan tambahkan tanda di sesi untuk mengizinkan semua operasi selanjutnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysql bandingkan panjang dan lat, kembalikan yang di bawah 10 mil

  2. Alat penyetelan kinerja MySQL terbaik?

  3. Hasil berbeda di sqlfiddle.com 5.5.30 dan MariaDB 5.5.31

  4. Hubungkan MySQL melalui localhost tidak berfungsi tetapi 127.0.0.1 berfungsi

  5. hasil kueri mysql dalam variabel php