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

Menyembunyikan ID objek basis data yang sebenarnya di url

Pertanyaan ini telah banyak ditanyakan, dengan pilihan kata yang berbeda (yang membuat sulit untuk mengatakan, "Cari saja!"). Fakta ini mendorong posting blog berjudul, The Panduan Komprehensif untuk Enkripsi Parameter URL di PHP .

Apa yang Ingin Dilakukan Orang Di Sini

Yang Harus Dilakukan Orang Sebagai gantinya

Penjelasan

Biasanya, orang ingin pendek URL yang tampak acak. Ini tidak memberi Anda banyak ruang untuk mengenkripsi lalu mengautentikasi ID catatan database yang ingin Anda samarkan. Melakukannya akan membutuhkan panjang URL minimum 32 byte (untuk HMAC-SHA256), yaitu 44 karakter saat dikodekan dalam base64.

Strategi yang lebih sederhana adalah membuat string acak (lihat random_compat untuk implementasi PHP5 dari random_bytes() dan random_int() untuk menghasilkan string ini) dan referensi kolom itu sebagai gantinya.

Selain itu, hashid rusak dengan kriptanalisis sederhana. Kesimpulan mereka menyatakan:

Serangan yang saya jelaskan secara signifikan lebih baik daripada serangan brute force, jadi dari sudut pandang kriptografi algoritma dianggap rusak, cukup mudah untuk memulihkan garam; memungkinkan penyerang untuk menjalankan pengkodean di kedua arah dan membatalkan properti 2 untuk fungsi hash yang ideal.

Jangan mengandalkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL memuat nilai NULL dari data CSV

  2. konfigurasi mysql berhenti saat memulai server

  3. 5 pertanyaan berguna MySql selama pengembangan proyek

  4. Bagaimana cara mengambil catatan pertama dan terakhir dari catatan yang dikelompokkan dalam kueri MySQL dengan fungsi agregat?

  5. ASCII() Contoh – MySQL