Apa sebenarnya inti dari SECRET_KEY
django? Saya melakukan beberapa pencarian google dan memeriksa dokumen ( https://docs.djangoproject.com/en/dev/ref/settings/#secret-key ), tetapi saya mencari penjelasan yang lebih mendalam tentang ini, dan mengapa itu diperlukan.
Misalnya, apa yang bisa terjadi jika kunci dikompromikan / orang lain tahu apa itu? Terima kasih.
python
django
security
encryption
David542
sumber
sumber
Jawaban:
Ini digunakan untuk membuat hash. Lihat:
sumber
SECRET_KEY
", sebagai lawan dari "AndaSALT
adalah kunci rahasia yang harus Anda simpan untuk diri sendiri."SECRET_KEY
harus dijaga keamanannya. PenggunaanSECRET_KEY
jauh lebih mirip dengan penggunaan kunci dalam hash yang ditandatangani seperti HMAC (yang, jika kinerja bukan pertimbangan, mungkin akan digunakan sebagai gantinya).The dokumentasi Django untuk penandatanganan kriptografi meliputi penggunaan dari 'SECRET_KEY' pengaturan:
(Bagian ini juga dirujuk dari dokumentasi Django untuk pengaturan 'SECRET_KEY' .)
API penandatanganan kriptografis di Django tersedia untuk aplikasi apa pun untuk tanda tangan yang aman secara kriptografis pada nilai. Django sendiri memanfaatkan ini dalam berbagai fitur tingkat tinggi:
Menandatangani data serial (mis. Dokumen JSON).
Token unik untuk sesi pengguna, permintaan setel ulang kata sandi, pesan, dll.
Pencegahan serangan lintas situs atau replay dengan menambahkan (dan kemudian mengharapkan) nilai unik untuk permintaan tersebut.
Menghasilkan garam unik untuk fungsi hash.
Jadi, jawaban umumnya adalah: Ada banyak hal dalam aplikasi Django yang memerlukan tanda tangan kriptografi, dan pengaturan 'SECRET_KEY' adalah kunci yang digunakan untuk itu. Itu harus memiliki jumlah entropi kriptografis yang kuat (sulit ditebak oleh komputer) dan unik di antara semua instance Django.
sumber
SECRET_KEY
pengaturan yang berbeda ?Menurut Dokumentasi Django tentang
SECRET_KEY
:sumber
SECRET_KEY
diputar. +1