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

Mengenkripsi data pengguna untuk login otomatis ke sistem pihak ketiga

Anda menemukan masalah terbesar dengan mengenkripsi data dalam database:

Di mana menyimpan kuncinya?

Enkripsi tidak dapat memecahkan masalah mengamankan data, ia hanya dapat "mengkonsentrasikannya" pada sebuah kunci. Di mana pun Anda menyimpan kunci, aplikasi Anda harus dapat mendekripsi data, demikian juga penyerang. Ada dua kemungkinan solusi untuk masalah ini yang saya ketahui:

  1. Tempatkan kunci di tempat yang seaman mungkin. Itu berarti, itu pasti harus ditempatkan di luar direktori www-root di direktori yang tidak dapat diakses di server. Bergantung pada pentingnya data, Anda juga dapat mempertimbangkan untuk mengalihdayakan enkripsi ke server khusus lainnya.
  2. Jangan simpan kunci sama sekali dan ambil dari kata sandi pengguna. Ini adalah satu-satunya cara yang benar-benar aman, karena bahkan server tidak dapat mendekripsi data saat itu. Kekurangannya tentu saja, bahwa pengguna harus memasukkan kata sandi setiap kali dia menggunakan layanan Anda. Jika pengguna mengubah kata sandi, Anda perlu mengenkripsi ulang semua data. Jika pengguna lupa kata sandi, data akan hilang.

P.S. Saya akan merekomendasikan untuk mengenkripsi data sebelum menyimpannya ke database, karena MySQL AES_ENCRYPT menggunakan mode ECB tanpa infus. Ini memungkinkan untuk mencari nilai tertentu, tetapi kurang aman (saya cukup yakin Anda tidak ingin mencari dengan kata sandi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan Django raw(), bidang terhitung dalam klausa WHERE

  2. Praktik terbaik untuk panjang kolom SQL varchar

  3. Perbedaan String PHP dan Pembatasan Dinamis

  4. Cari tabel mysqli dengan formulir dan hasil tampilan

  5. Beri peringkat pengguna di mysql berdasarkan poin mereka