Privaatvõtmete hoidmine koodihoidlatest on turvalisuse tagamiseks ülioluline. Uurige, kuidas seda teha ja kuidas taastada, kui olete vea juba teinud.

Djangos mängib salajane võti teie rakenduse turvalisuse suurendamisel üliolulist rolli. See aitab hallata kasutajaseansse, kaitseb saidiüleste taotluste võltsimise (CSRF) rünnakute eest ja kaitseb teie andmeid, luues ja kontrollides muu hulgas krüptograafilisi allkirju.

Peaksite oma projekti salajast võtit alati kaitsma. Selle paljastamine jätab teie rakenduse vastuvõtlikuks häkkerite pahatahtlikele rünnakutele, mis seab ohtu selle turvalisuse. Kui teie salavõti satub ohtu, peaksite teadma, kuidas luua uus, et vähendada rakendusele avaldatavat negatiivset mõju.

Kuidas saab teie Django salavõtit paljastada?

Saate oma Django salavõtme kogemata avalikuks teha, kui sisestate selle teadmata giti või sarnasesse lähtekoodihoidlasse. See viga on levinud uute programmeerijate seas, kes on endiselt GitHubi tundmaõppimine. Kui see juhtub, saate teha ühte järgmistest.

instagram viewer
  1. Kustuta kohustus.
  2. Asendage salajane võti täielikult.

Kinnitamise kustutamine ei pruugi olla parim valik, kuna sissekandmise ajalugu on endiselt juurdepääsetav erinevate vahenditega, näiteks vahemällu salvestatud koopiate kaudu GitHubis või muudes hajutatud süsteemides. Kõige kindlam, mida sellises olukorras teha, on eeldada, et teie salavõti on juba ohustatud.

Peaksite looma uue salajase võtme, et asendada ohustatud võti ja kaitsta seda keskkonnamuutujate abil. Igal juhul peaksite õppima, kuidas luua Djangos uut salavõtit, et kaitsta oma rakendust selliste asjade eest nagu Cross-Site Request Forgery (CSRF) rünnakud.

Kuidas Djangos uut salavõtit luua

Django pakub funktsiooni nimega get_random_secret_key() mis aitab teil igal helistamisel luua uue salajase võtme. Funktsioon get_random_secret_key() on utiliit, mis kasutab saladusi moodul Pythonis, et luua 50 märgist koosnev turvaline salavõti.

Funktsiooniga get_random_secret_key() uue salavõtme genereerimiseks avage oma Käsurea liides (CLI) ja tippige see käsk:

python manage.py kest -c "failist django.core.management.utils import get_random_secret_key; print (get_random_secret_key())"

Ülaltoodud käsk impordib funktsiooni get_random_secret_key() kohast django.core.management.utils ja prindib seejärel välja uue 50 märgist koosneva salavõtme, mida saate oma projektis kasutada. Enne ülaltoodud käsu käivitamist veenduge, et olete oma projekti juurkataloogis, st samas kohas, kus manager.py faili oma projektis.

Saate käivitada sama käsu väljaspool oma CLI-d, luues Pythoni faili ja kleepides sellesse koodilõigu:

# importige funktsioon get_random_secret_key().
alates django.core.management.utils importida hanki_juhuslik_saladus_võti

secret_key = hanki_juhuslik_salajane_võti()
print (salajane_võti)

Koodi saate käivitada, tippides selle oma CLI-sse:

pythoni failinimi.py

Ülaltoodud käsk peaks välja printima uue 50 märgist koosneva salajase võtme, mida saate oma projektis kasutada.

Kuidas kaitsta oma salajast võtit keskkonnamuutujate abil

Tõenäoliselt ei taha te oma salajast võtit iga kord GitHubi kohustuse tegemisel muuta. Tõhus viis oma salajase võtme kaitsmiseks on selle salvestamine keskkonnamuutujasse. Keskkonnamuutujad on väärtused, mille saate määrata väljaspool oma koodibaasi ja millele teie programm pääseb käitusajal juurde. Nad saavad salvestada konfiguratsiooni, API võtmeid, andmebaasi mandaate jne.

Saate oma keskkonnamuutujad salvestada faili nimega .env ja välistada need oma git-hoidlast. Seda saate teha, luues faili nimega .gitignoreeri oma projektis. Fail .gitignore sisaldab failide ja kaustade loendit, mida Git ei jälgi.

Failitüübid ja kataloogistruktuurid on projektiti erinevad, kuid iga keele jaoks saate rakendada mõistlikke vaikeseadeid. .gitignore mallide loendi leiate siit GitHubi gitignore hoidla. Järgmised sammud näitavad, kuidas Djangos keskkonnamuutujatega faili .gitignore kasutada.

1. Looge .gitignore fail

Teie baaskataloogis – teie asukoht manager.py fail – loo a .gitignoreeri faili ja kopeerige selle sisu GitHubi fail sellesse. See fail on Pythoni projektide jaoks näidis .gitignore, mis välistab tavalised failid, mida te oma hoidlasse ei soovi.

Teise võimalusena saate GitHubis hoidla loomise ajal oma projektile lisada .gitignore-faili. Selleks klõpsake nuppu Lisage .gitignore otsige Pythonit ja valige see.

2. Looge env-fail

Looge oma baaskataloogis fail nimega .env. See fail salvestab kõik teie keskkonnamuutujad. Kopeerige ja kleepige oma salajane võti sellesse faili (eemaldage selle ümber olevad jutumärgid ja tühikud). Siin on näide:

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

Ava .gitignoreeri faili ja kinnitage, et .env faili nimi on selles. Kui see pole nii, saate selle lisada, kirjutades reale failinime:

.env

3. Installige pakett python-dotenv

Avage oma CLI ja installige python-dotenv pakett kui sõltuvus.

pip installi python-dotenv

4. Muutke oma settings.py faili

Sinu settings.py faili, importige järgmised paketid:

importida os
alates dotenv importida load_dotenv

Järgmisena laadige oma keskkonnamuutujad .env faili oma settings.py faili helistades load_dotenv() funktsioon:

load_dotenv()

Lõpuks asendage oma SECRET_KEY muutuja selle koodireaga:

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

Saate käivitada oma arendusserveri, et kontrollida ülaltoodud konfiguratsiooni toimimist. Kui see nii on, peaks teie projekt töötama ootuspäraselt. Allolev käsk käivitab teie arendusserveri.

python manage.py runserver

Hoidke oma salavõtit keskkonnamuutujate abil turvaliselt

Salajase võtme paljastamine võib teile kui arendajale palju probleeme tekitada. Te ei pruugi alati oma projekti rünnakust taastada, eriti tootmiskeskkonnas.

Nende negatiivsete kõrvalmõjude vältimiseks salvestage oma salajane võti alati keskkonnamuutujasse ja kasutage a .gitignoreeri faili, et hoida seda teie git-hoidlast eemal.