Как да генерирате нов таен ключ в Django

Как да генерирате нов таен ключ в Django
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

В Django секретният ключ играе жизненоважна роля за подобряване на сигурността на вашето приложение. Той помага за управлението на потребителски сесии, предпазва от атаки за фалшифициране на заявки между сайтове (CSRF) и предпазва вашите данни чрез генериране и проверка на криптографски подписи, наред с други неща.





MAKEUSEOF ВИДЕО НА ДЕНЯ ПРЕВЪРТЕТЕ, ЗА ДА ПРОДЪЛЖИТЕ СЪС СЪДЪРЖАНИЕТО

Трябва да пазите тайния ключ на вашия проект сигурен през цялото време. Излагането му ще направи приложението ви податливо на злонамерени атаки от хакери, компрометирайки сигурността му. Ако вашият таен ключ бъде компрометиран, трябва да знаете как да генерирате нов, за да намалите отрицателното въздействие върху вашето приложение.





Как може да бъде разкрит вашият таен ключ на Django?

Можете случайно да направите вашия Django таен ключ публичен, ако несъзнателно го ангажирате с git или подобно хранилище на изходния код. Тази грешка е често срещана сред новите програмисти, които все още са научаване за GitHub . Когато това се случи, можете да направите едно от следните неща:





  1. Изтрийте ангажимента.
  2. Сменете изцяло секретния ключ.

Изтриването на ангажимента може да не е най-добрият вариант, тъй като историята на ангажиментите все още може да бъде достъпна чрез различни средства, като например кеширани копия в GitHub или други разпределени системи. Най-безопасното нещо, което можете да направите в такава ситуация, е да приемете, че вашият таен ключ вече е компрометиран.

Трябва да генерирате нов таен ключ, за да замените компрометирания и да го защитите с помощта на променливи на средата. Във всеки случай трябва да научите как да генерирате нов таен ключ в Django, за да защитите приложението си от неща като Cross-Site Request Forgery (CSRF) атаки .



как да създадете .bat файл

Как да генерирате нов таен ключ в Django

Django предоставя функция, наречена get_random_secret_key() който ви помага да генерирате нов таен ключ, когато го извикате. Функцията get_random_secret_key() е помощна функция, която използва тайни модул в Python за генериране на защитен таен ключ от 50 знака.

За да генерирате нов таен ключ с функцията get_random_secret_key(), отворете своя Интерфейс на командния ред (CLI) и въведете тази команда:





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

Горната команда импортира функцията get_random_secret_key() от django.core.management.utils и след това отпечатва нов таен ключ от 50 знака, който можете да използвате във вашия проект. Преди да изпълните горната команда, уверете се, че сте в основната директория на вашия проект, т.е. на същото място като управление.py файл във вашия проект.

Можете да изпълните същата команда извън вашия CLI, като създадете Python файл и поставите този кодов фрагмент в него:





 # 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)

Можете да стартирате кода, като напишете това във вашия CLI:

 python fileName.py 

Командата по-горе трябва да отпечата нов таен ключ от 50 знака, който можете да използвате във вашия проект.

Как да защитите своя таен ключ с променливи на средата

Вероятно не искате да променяте секретния си ключ всеки път, когато правите GitHub ангажимент. Ефикасен начин да запазите вашия таен ключ в безопасност е като го съхранявате в променлива на средата. Променливите на средата са стойности, които можете да зададете извън вашата кодова база, до които вашата програма все още има достъп по време на изпълнение. Те могат да съхраняват конфигурация, API ключове, идентификационни данни за база данни и т.н.

Можете да съхранявате вашите променливи на средата във файл с име .env и да ги изключите от вашето git хранилище. Можете да направите това, като създадете файл, наречен .gitignore във вашия проект. Файлът .gitignore съдържа списък с файлове и папки, които Git няма да проследява.

Типовете файлове и структурите на директории варират от проект до проект, но има разумни настройки по подразбиране, които можете да приложите за всеки език. Можете да намерите списък с шаблони .gitignore в Gitignore хранилище на GitHub . Следващите стъпки ви показват как да използвате файла .gitignore с променливи на средата в Django.

1. Създайте файл .gitignore

Във вашата основна директория—местоположението на вашия управление.py файл—създайте a .gitignore файл и копирайте съдържанието на това GitHub файл в него. Този файл е примерен .gitignore за проекти на Python, който изключва общи файлове, които няма да искате във вашето хранилище.

Като алтернатива можете да добавите файл .gitignore към вашия проект, докато създавате хранилище в GitHub. За да направите това, щракнете върху Добавете .gitignore опция, потърсете Python и го изберете.

  добавяне на шаблон python .gitignore в github

2. Създайте .env файл

Във вашата базова директория създайте файл, наречен .env . Този файл ще съхранява всичките ви променливи на средата. Копирайте и поставете вашия таен ключ в този файл (премахнете кавичките и интервалите около него). Ето един пример:

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

Отвори .gitignore файл и потвърдете, че .env името на файла е в него. Ако не е, можете да го добавите, като напишете името на файла самостоятелно на ред:

 .env 

3. Инсталирайте пакета python-dotenv

Отворете своя CLI и инсталирайте python-dotenv пакет като зависимост.

 pip install python-dotenv 

  инсталиране на пакета python-dotenv

4. Променете вашия файл settings.py

Във вашия settings.py файл, импортирайте следните пакети:

 import os 
from dotenv import load_dotenv

След това заредете променливите на средата от вашия .env файл във вашия settings.py файл, като се обадите на load_dotenv() функция:

 load_dotenv() 

Накрая сменете вашия SECRET_KEY променлива с този ред код:

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

Можете да стартирате вашия сървър за разработка, за да потвърдите, че горната конфигурация работи. Ако това стане, вашият проект трябва да работи както очаквате. Командата по-долу ще стартира вашия сървър за разработка.

гледайте youtube едновременно
 python manage.py runserver 

Пазете тайния си ключ в безопасност с променливи на средата

Разкриването на вашия таен ключ може да причини много проблеми за вас като разработчик. Възможно е не винаги да можете да възстановите проекта си от атака, особено в производствена среда.

За да предотвратите тези отрицателни странични ефекти, винаги съхранявайте секретния си ключ в променлива на средата и използвайте a .gitignore файл, за да го държите извън вашето git хранилище.