Menjaga kunci pribadi Anda dari repositori kode sangat penting untuk keamanan. Cari tahu cara melakukannya dan cara memulihkannya jika Anda telah melakukan kesalahan.

Di Django, kunci rahasia memainkan peran vital dalam meningkatkan keamanan aplikasi Anda. Ini membantu mengelola sesi pengguna, melindungi dari serangan Cross-Site Request Forgery (CSRF), dan melindungi data Anda dengan menghasilkan dan memverifikasi tanda tangan kriptografi antara lain.

Anda harus menjaga keamanan kunci rahasia proyek Anda setiap saat. Mengeksposnya akan membuat aplikasi Anda rentan terhadap serangan berbahaya oleh peretas, membahayakan keamanannya. Jika kunci rahasia Anda disusupi, Anda harus tahu cara membuat yang baru untuk mengurangi dampak negatif pada aplikasi Anda.

Bagaimana Kunci Rahasia Django Anda Terungkap?

Anda dapat secara tidak sengaja membuat kunci rahasia Django Anda menjadi publik jika Anda tanpa sadar memasukkannya ke git atau repositori kode sumber serupa. Kesalahan ini biasa terjadi di kalangan programmer baru yang masih

belajar tentang GitHub. Ketika itu terjadi, Anda dapat melakukan salah satu dari yang berikut:

  1. Hapus komit.
  2. Ganti kunci rahasia seluruhnya.

Menghapus komit mungkin bukan pilihan terbaik karena riwayat komit masih dapat diakses melalui berbagai cara, seperti salinan cache di GitHub atau sistem terdistribusi lainnya. Hal teraman untuk dilakukan dalam situasi seperti ini adalah menganggap kunci rahasia Anda sudah disusupi.

Anda harus membuat kunci rahasia baru untuk menggantikan kunci rahasia dan melindunginya dengan menggunakan variabel lingkungan. Bagaimanapun, Anda harus mempelajari cara membuat kunci rahasia baru di Django untuk melindungi aplikasi Anda dari hal-hal seperti Serangan Cross-Site Request Forgery (CSRF)..

Cara Menghasilkan Kunci Rahasia Baru di Django

Django menyediakan fungsi yang disebut get_random_secret_key() yang membantu Anda menghasilkan kunci rahasia baru setiap kali Anda memanggilnya. Fungsi get_random_secret_key() adalah fungsi utilitas yang menggunakan rahasia modul dalam Python untuk menghasilkan kunci rahasia yang aman dari 50 karakter.

Untuk menghasilkan kunci rahasia baru dengan fungsi get_random_secret_key(), buka file Antarmuka Baris Perintah (CLI) dan ketik perintah ini:

python mengelola.py Shell -c "dari django.core.management.utils import get_random_secret_key; cetak (get_random_secret_key())"

Perintah di atas mengimpor fungsi get_random_secret_key() dari django.core.management.utils lalu mencetak kunci rahasia baru berisi 50 karakter, yang dapat Anda gunakan dalam proyek Anda. Sebelum menjalankan perintah di atas, pastikan Anda berada di direktori root proyek Anda, yaitu lokasi yang sama dengan kelola.py file dalam proyek Anda.

Anda dapat menjalankan perintah yang sama di luar CLI dengan membuat file Python dan menempelkan cuplikan kode ini di dalamnya:

# impor fungsi get_random_secret_key()
dari django.core.management.utils impor get_random_secret_key

secret_key = get_random_secret_key()
cetak (kunci_rahasia)

Anda dapat menjalankan kode dengan mengetik ini di CLI Anda:

python namafile.py

Perintah di atas akan mencetak kunci rahasia baru berisi 50 karakter yang dapat Anda gunakan dalam proyek Anda.

Bagaimana Melindungi Kunci Rahasia Anda Dengan Variabel Lingkungan

Anda mungkin tidak ingin mengubah kunci rahasia Anda setiap kali Anda melakukan GitHub commit. Cara efisien untuk menjaga keamanan kunci rahasia Anda adalah dengan menyimpannya dalam variabel lingkungan. Variabel lingkungan adalah nilai yang dapat Anda tetapkan di luar basis kode Anda, yang masih dapat diakses oleh program Anda selama waktu proses. Mereka dapat menyimpan konfigurasi, kunci API, kredensial database, dll.

Anda dapat menyimpan variabel lingkungan Anda dalam file bernama .env dan mengecualikannya dari repositori git Anda. Anda dapat melakukan ini dengan membuat file bernama .gitignore dalam proyek Anda. File .gitignore berisi daftar file dan folder yang tidak akan dilacak oleh Git.

Jenis file dan struktur direktori bervariasi dari satu proyek ke proyek lainnya, tetapi ada standar yang masuk akal yang dapat Anda terapkan untuk setiap bahasa. Anda dapat menemukan daftar templat .gitignore di Repositori gitignore GitHub. Langkah-langkah berikut menunjukkan cara menggunakan berkas .gitignore dengan variabel lingkungan di Django.

1. Buat File .gitignore

Di direktori dasar Anda—lokasi file kelola.py file—buat file .gitignore file dan salin isinya file GitHub ke dalamnya. File itu adalah contoh .gitignore untuk proyek Python yang mengecualikan file umum yang tidak Anda inginkan di repositori Anda.

Alternatifnya, Anda dapat menambahkan file .gitignore ke proyek Anda sambil membuat repositori di GitHub. Untuk melakukannya, klik pada Tambahkan .gitignore opsi, cari Python, dan pilih.

2. Buat File .env

Di direktori dasar Anda, buat file bernama .env. File ini akan menyimpan semua variabel lingkungan Anda. Salin dan tempel kunci rahasia Anda ke dalam file ini (hapus tanda kutip dan spasi di sekitarnya). Ini contohnya:

RAHASIA_KUNCI=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1%

Buka .gitignore file dan mengkonfirmasi bahwa .env nama file ada di dalamnya. Jika tidak, Anda dapat menambahkannya dengan menulis sendiri nama file di baris:

.env

3. Instal Paket python-dotenv

Buka CLI Anda, dan instal python-dotenv paket sebagai ketergantungan.

pip instal python-dotenv

4. Ubah File settings.py Anda

Di Anda pengaturan.py file, impor paket-paket berikut:

impor os
dari dotenv impor load_dotenv

Selanjutnya, muat variabel lingkungan dari file Anda .env file ke Anda pengaturan.py file dengan memanggil load_dotenv() fungsi:

load_dotenv()

Akhirnya, ganti Anda KUNCI RAHASIA variabel dengan baris kode ini:

SECRET_KEY = os.environ.get('KUNCI RAHASIA')

Anda dapat menjalankan server pengembangan untuk mengonfirmasi bahwa konfigurasi di atas berfungsi. Jika ya, proyek Anda akan berjalan seperti yang Anda harapkan. Perintah di bawah ini akan memulai server pengembangan Anda.

python mengelola.py runserver

Amankan Kunci Rahasia Anda Dengan Variabel Lingkungan

Mengekspos kunci rahasia Anda dapat menyebabkan banyak masalah bagi Anda sebagai pengembang. Anda mungkin tidak selalu dapat memulihkan proyek Anda dari serangan, terutama di lingkungan produksi.

Untuk mencegah efek samping negatif ini, selalu simpan kunci rahasia Anda di variabel lingkungan dan gunakan a .gitignore file untuk menyimpannya dari repositori git Anda.