Hoe een nieuwe geheime sleutel te genereren in Django

Hoe een nieuwe geheime sleutel te genereren in Django
Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

In Django speelt een geheime sleutel een cruciale rol bij het verbeteren van de beveiliging van uw applicatie. Het helpt gebruikerssessies te beheren, beschermt tegen Cross-Site Request Forgery (CSRF)-aanvallen en beschermt uw gegevens door onder andere cryptografische handtekeningen te genereren en te verifiëren.





MAAK GEBRUIK VAN DE VIDEO VAN DE DAG SCROLL OM DOOR TE GAAN MET INHOUD

U moet de geheime sleutel van uw project te allen tijde veilig bewaren. Als u het openbaar maakt, wordt uw toepassing vatbaar voor kwaadaardige aanvallen door hackers, waardoor de beveiliging ervan in gevaar komt. Als uw geheime sleutel wordt gecompromitteerd, moet u weten hoe u een nieuwe kunt genereren om de negatieve impact op uw toepassing te verminderen.





Hoe kan uw geheime sleutel van Django worden onthuld?

Je kunt per ongeluk je geheime sleutel van Django openbaar maken als je deze onbewust vastlegt in git of een vergelijkbare broncoderepository. Deze fout komt veel voor bij nieuwe programmeurs die nog steeds zijn leren over GitHub . Wanneer dit gebeurt, kunt u een van de volgende dingen doen:





  1. Verwijder de toezegging.
  2. Vervang de geheime sleutel volledig.

Het verwijderen van de commit is misschien niet de beste optie, omdat de commit-geschiedenis nog steeds op verschillende manieren toegankelijk kan zijn, zoals kopieën in de cache op GitHub of andere gedistribueerde systemen. Het veiligste wat u in een dergelijke situatie kunt doen, is aannemen dat uw geheime sleutel al is gecompromitteerd.

U moet een nieuwe geheime sleutel genereren om de gecompromitteerde sleutel te vervangen en deze te beschermen door omgevingsvariabelen te gebruiken. In ieder geval moet u leren hoe u een nieuwe geheime sleutel in Django kunt genereren om uw app te beschermen tegen zaken als Cross-Site Request Forgery (CSRF)-aanvallen .



wat te doen met oude luidsprekers?

Hoe een nieuwe geheime sleutel te genereren in Django

Django biedt een functie genaamd get_random_secret_key() waarmee u een nieuwe geheime sleutel kunt genereren wanneer u deze aanroept. De functie get_random_secret_key() is een hulpprogramma die gebruikmaakt van de geheimen module in Python om een ​​veilige geheime sleutel van 50 tekens te genereren.

Om een ​​nieuwe geheime sleutel te genereren met de functie get_random_secret_key(), opent u uw Opdrachtregelinterface (CLI) en typ deze opdracht:





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

De bovenstaande opdracht importeert de functie get_random_secret_key() uit django.core.management.utils en drukt vervolgens een nieuwe geheime sleutel van 50 tekens af, die u in uw project kunt gebruiken. Voordat u de bovenstaande opdracht uitvoert, moet u ervoor zorgen dat u zich in de hoofdmap van uw project bevindt, d.w.z. dezelfde locatie als de beheren.py bestand in uw project.

U kunt dezelfde opdracht buiten uw CLI uitvoeren door een Python-bestand te maken en dit codefragment erin te plakken:





 # import the get_random_secret_key() function 
from django.core.management.utils import get_random_secret_key

secret_key = get_random_secret_key()
print(secret_key)

U kunt de code uitvoeren door dit in uw CLI te typen:

 python fileName.py 

De bovenstaande opdracht zou een nieuwe geheime sleutel van 50 tekens moeten afdrukken die u in uw project kunt gebruiken.

Hoe u uw geheime sleutel kunt beschermen met omgevingsvariabelen

Je wilt waarschijnlijk niet elke keer dat je een GitHub commit maakt je geheime sleutel veranderen. Een efficiënte manier om uw geheime sleutel veilig te houden, is door deze op te slaan in een omgevingsvariabele. Omgevingsvariabelen zijn waarden die u buiten uw codebase kunt instellen, waartoe uw programma tijdens runtime nog steeds toegang heeft. Ze kunnen configuratie, API-sleutels, databasereferenties, enz.

Je kunt je omgevingsvariabelen opslaan in een bestand met de naam .env en ze uitsluiten van je git-repository. Dit doe je door een bestand aan te maken met de naam .gitignore bij uw project. Het .gitignore-bestand bevat een lijst met bestanden en mappen die Git niet zal volgen.

Bestandstypes en directorystructuren variëren van project tot project, maar er zijn verstandige standaardinstellingen die u voor elke taal kunt toepassen. U kunt een lijst met .gitignore-sjablonen vinden in GitHub's gitignore-repository . De volgende stappen laten zien hoe u het .gitignore-bestand met omgevingsvariabelen in Django gebruikt.

1. Maak een .gitignore-bestand aan

In uw basismap - de locatie van uw beheren.py bestand - maak een .gitignore bestand en kopieer de inhoud hiervan GitHub-bestand erin. Dat bestand is een voorbeeld .gitignore voor Python-projecten dat veelvoorkomende bestanden uitsluit die je niet in je repository wilt hebben.

mac os uitgebreid journaled op pc

Je kunt ook een .gitignore-bestand aan je project toevoegen terwijl je een repository op GitHub aanmaakt. Om dat te doen, klikt u op de Voeg .gitignore toe optie, zoek naar Python en selecteer het.

  een python .gitignore-sjabloon toevoegen op github

2. Maak een .env-bestand

Maak in uw basismap een bestand met de naam .env . Dit bestand slaat al uw omgevingsvariabelen op. Kopieer en plak uw geheime sleutel in dit bestand (verwijder de aanhalingstekens en spaties eromheen). Hier is een voorbeeld:

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

Open de .gitignore bestand en bevestig dat de .env bestandsnaam staat erin. Als dit niet het geval is, kunt u deze toevoegen door de bestandsnaam afzonderlijk op een regel te schrijven:

 .env 

3. Installeer het python-dotenv-pakket

Open uw CLI en installeer het python-dotenv pakket als een afhankelijkheid.

 pip install python-dotenv 

  het installeren van het python-dotenv-pakket

4. Wijzig uw settings.py-bestand

In uw instellingen.py bestand, importeert u de volgende pakketten:

Android auto werkt niet na update
 import os 
from dotenv import load_dotenv

Laad vervolgens de omgevingsvariabelen van uw .env bestand in uw instellingen.py bestand door te bellen naar de load_dotenv() functie:

 load_dotenv() 

Vervang ten slotte uw GEHEIME SLEUTEL variabele met deze regel code:

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

U kunt uw ontwikkelingsserver uitvoeren om te bevestigen dat de bovenstaande configuratie werkt. Als dit het geval is, zou uw project moeten werken zoals u zou verwachten. De onderstaande opdracht start uw ontwikkelingsserver.

 python manage.py runserver 

Houd uw geheime sleutel veilig met omgevingsvariabelen

Het blootgeven van je geheime sleutel kan voor veel problemen zorgen voor jou als ontwikkelaar. Het is mogelijk dat u uw project niet altijd kunt herstellen van een aanval, vooral niet in een productieomgeving.

Om deze negatieve bijwerkingen te voorkomen, slaat u uw geheime sleutel altijd op in een omgevingsvariabele en gebruikt u een .gitignore bestand om het uit je git-repository te houden.