Özel anahtarlarınızı kod depolarının dışında tutmak güvenlik için hayati önem taşır. Bunu nasıl yapacağınızı ve hatayı zaten yaptıysanız nasıl toparlanacağınızı öğrenin.
Django'da gizli bir anahtar, uygulamanızın güvenliğini artırmada hayati bir rol oynar. Kullanıcı oturumlarını yönetmeye yardımcı olur, Siteler Arası İstek Sahtekarlığı (CSRF) saldırılarına karşı koruma sağlar ve diğer şeylerin yanı sıra kriptografik imzalar oluşturup doğrulayarak verilerinizi korur.
Projenizin gizli anahtarını her zaman güvende tutmalısınız. Açığa çıkarmak, uygulamanızı bilgisayar korsanlarının kötü niyetli saldırılarına karşı savunmasız bırakarak güvenliğini tehlikeye atacaktır. Gizli anahtarınız ele geçirilirse, uygulamanız üzerindeki olumsuz etkiyi azaltmak için yenisini nasıl oluşturacağınızı bilmelisiniz.
Django Gizli Anahtarınız Nasıl Ortaya Çıkabilir?
Django gizli anahtarınızı bilmeden git'e veya benzer bir kaynak kodu deposuna gönderirseniz yanlışlıkla herkese açık hale getirebilirsiniz. Bu hata, hala yeni olan programcılar arasında yaygındır.
GitHub'ı öğrenmek. Bu olduğunda, aşağıdakilerden birini yapabilirsiniz:- Taahhüdü silin.
- Gizli anahtarı tamamen değiştirin.
Taahhüdün silinmesi en iyi seçenek olmayabilir çünkü taahhüt geçmişine GitHub veya diğer dağıtılmış sistemlerde önbelleğe alınmış kopyalar gibi çeşitli yollarla erişilebilir. Böyle bir durumda yapılacak en güvenli şey, gizli anahtarınızın zaten tehlikede olduğunu varsaymaktır.
Güvenliği ihlal edilmiş olanı değiştirmek için yeni bir gizli anahtar oluşturmalı ve onu ortam değişkenlerini kullanarak korumalısınız. Her durumda, uygulamanızı aşağıdaki gibi şeylerden korumak için Django'da nasıl yeni bir gizli anahtar oluşturacağınızı öğrenmelisiniz. Siteler Arası İstek Sahteciliği (CSRF) saldırıları.
Django'da Yeni Bir Gizli Anahtar Nasıl Oluşturulur
Django adlı bir işlev sağlar. get_random_secret_key() bu, her aradığınızda yeni bir gizli anahtar oluşturmanıza yardımcı olur. get_random_secret_key() işlevi, sırlar 50 karakterlik güvenli bir gizli anahtar oluşturmak için Python'daki modül.
get_random_secret_key() işleviyle yeni bir gizli anahtar oluşturmak için, Komut Satırı Arayüzü (CLI) ve şu komutu yazın:
piton manager.py kabuğu -c "django.core.management.utils'ten get_random_secret_key'i içe aktarın; yazdır (get_random_secret_key())"
Yukarıdaki komut, get_random_secret_key() işlevini django.core.management.utils ve ardından projenizde kullanabileceğiniz 50 karakterlik yeni bir gizli anahtar yazdırır. Yukarıdaki komutu çalıştırmadan önce, projenizin kök dizininde, yani proje ile aynı konumda olduğunuzdan emin olun. yönet.py projenizdeki dosya.
Bir Python dosyası oluşturup bu kod parçacığını içine yapıştırarak aynı komutu CLI'nizin dışında çalıştırabilirsiniz:
# get_random_secret_key() işlevini içe aktarın
itibaren django.core.management.utils içe aktarmak get_random_secret_key
secret_key = get_random_secret_key()
yazdır (gizli_anahtar)
Bunu CLI'nize yazarak kodu çalıştırabilirsiniz:
python dosyaAdı.py
Yukarıdaki komut, projenizde kullanabileceğiniz 50 karakterlik yeni bir gizli anahtar yazdırmalıdır.
Gizli Anahtarınızı Ortam Değişkenleriyle Nasıl Korursunuz?
Muhtemelen her GitHub taahhüdü yaptığınızda gizli anahtarınızı değiştirmek istemezsiniz. Gizli anahtarınızı güvende tutmanın etkili bir yolu, onu bir ortam değişkeninde saklamaktır. Ortam değişkenleri, kod tabanınızın dışında ayarlayabileceğiniz, programınızın çalışma zamanı sırasında hala erişebileceği değerlerdir. Yapılandırmayı, API anahtarlarını, veritabanı kimlik bilgilerini vb. depolayabilirler.
Ortam değişkenlerinizi .env adlı bir dosyada saklayabilir ve git deponuzdan çıkarabilirsiniz. Bunu adlı bir dosya oluşturarak yapabilirsiniz. .gitignore projenizde .gitignore dosyası, Git'in izlemeyeceği dosya ve klasörlerin bir listesini içerir.
Dosya türleri ve dizin yapıları projeden projeye değişir, ancak her dil için uygulayabileceğiniz mantıklı varsayılanlar vardır. .gitignore şablonlarının bir listesini şu adreste bulabilirsiniz: GitHub'ın gitignore deposu. Aşağıdaki adımlar, .gitignore dosyasını Django'da ortam değişkenleriyle nasıl kullanacağınızı gösterir.
1. Bir .gitignore Dosyası Oluşturun
Temel dizininizde — dosyanızın konumu yönet.py dosya—oluştur .gitignore bunun içeriğini dosyalayın ve kopyalayın GitHub dosyası bunun içine. Bu dosya, deponuzda istemeyeceğiniz yaygın dosyaları hariç tutan, Python projeleri için örnek bir .gitignore'dur.
Alternatif olarak, GitHub'da havuz oluştururken projenize bir .gitignore dosyası ekleyebilirsiniz. Bunu yapmak için üzerine tıklayın .gitignore'u ekleyin seçeneği, Python'u arayın ve seçin.
2. Bir .env Dosyası Oluşturun
Temel dizininizde, adlı bir dosya oluşturun. .env. Bu dosya tüm ortam değişkenlerinizi saklayacaktır. Gizli anahtarınızı kopyalayıp bu dosyaya yapıştırın (etrafındaki tırnak işaretlerini ve boşlukları kaldırın). İşte bir örnek:
SECRET_KEY=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1%
Aç .gitignore dosyalayın ve onaylayın .env dosya adı içindedir. Değilse, dosya adını tek bir satıra yazarak ekleyebilirsiniz:
.env
3. python-dotenv Paketini kurun
CLI'nizi açın ve python-dotenv bir bağımlılık olarak paket.
pip kurulumu python-dotenv
4. settings.py Dosyanızı Değiştirin
senin içinde ayarlar.py dosya, aşağıdaki paketleri içe aktarın:
içe aktarmak işletim sistemi
itibaren dotenv içe aktarmak load_dotenv
Ardından, ortam değişkenlerini cihazınızdan yükleyin. .env içine dosya ayarlar.py çağırarak dosya load_dotenv() işlev:
load_dotenv()
Son olarak, değiştirin GİZLİ ANAHTAR bu kod satırı ile değişken:
SECRET_KEY = os.environ.get('GİZLİ ANAHTAR')
Yukarıdaki yapılandırmanın çalıştığını doğrulamak için geliştirme sunucunuzu çalıştırabilirsiniz. Varsa, projeniz beklediğiniz gibi çalışmalıdır. Aşağıdaki komut geliştirme sunucunuzu başlatacaktır.
python manager.py çalıştırma sunucusu
Gizli Anahtarınızı Ortam Değişkenleriyle Güvende Tutun
Gizli anahtarınızı açığa çıkarmak, bir geliştirici olarak sizin için birçok soruna neden olabilir. Özellikle üretim ortamında, projenizi bir saldırıdan her zaman kurtaramayabilirsiniz.
Bu olumsuz yan etkileri önlemek için gizli anahtarınızı her zaman bir ortam değişkeninde saklayın ve bir .gitignore git deponuzun dışında tutmak için dosya.