A titkos kulcsok távoltartása a kódtárakból létfontosságú a biztonság érdekében. Tudja meg, hogyan kell ezt megtenni, és hogyan lehet helyreállítani, ha már elkövette a hibát.

A Django-ban egy titkos kulcs létfontosságú szerepet játszik az alkalmazás biztonságának növelésében. Segít a felhasználói munkamenetek kezelésében, védelmet nyújt a Cross-Site Request Forgery (CSRF) támadásokkal szemben, és védi adatait többek között kriptográfiai aláírások generálásával és ellenőrzésével.

A projekt titkos kulcsát mindig biztonságban kell tartania. Ha nyilvánosságra hozza, az alkalmazás érzékeny lesz a hackerek rosszindulatú támadásaira, ami veszélyezteti a biztonságát. Ha titkos kulcsa veszélybe kerül, tudnia kell, hogyan hozhat létre újat, hogy csökkentse az alkalmazásra gyakorolt ​​negatív hatást.

Hogyan lehet nyilvánosságra hozni a Django titkos kulcsát?

Véletlenül nyilvánossá teheti Django titkos kulcsát, ha tudtán kívül elhelyezi a git-ben vagy egy hasonló forráskód tárolóban. Ez a hiba gyakori az új programozók körében, akik még mindig

instagram viewer
a GitHub megismerése. Amikor ez megtörténik, a következők egyikét teheti:

  1. Törölje a véglegesítést.
  2. Cserélje ki teljesen a titkos kulcsot.

Előfordulhat, hogy a véglegesítés törlése nem a legjobb megoldás, mivel a véglegesítési előzmények továbbra is elérhetők különféle módokon, például a GitHubon vagy más elosztott rendszereken tárolt másolatok segítségével. Ilyen helyzetben a legbiztonságosabb, ha feltételezzük, hogy titkos kulcsa már veszélybe került.

Létre kell hoznia egy új titkos kulcsot, amely lecseréli a feltört kulcsot, és környezeti változók használatával védi azt. Mindenesetre meg kell tanulnia, hogyan hozhat létre új titkos kulcsot a Django-ban, hogy megvédje alkalmazását a hasonló dolgoktól Cross-Site Request Forgery (CSRF) támadások.

Hogyan generáljunk új titkos kulcsot a Django-ban

A Django egy ún get_random_secret_key() amely segít új titkos kulcs létrehozásában, amikor hívja. A get_random_secret_key() függvény egy olyan segédfunkció, amely a titkok modult a Pythonban egy 50 karakterből álló biztonságos titkos kulcs generálásához.

Új titkos kulcs létrehozásához a get_random_secret_key() függvénnyel, nyissa meg a Parancssori interfész (CLI) és írja be ezt a parancsot:

python manage.py shell -c "a django.core.management.utils importból: get_random_secret_key; nyomtatás (get_random_secret_key())"

A fenti parancs importálja a get_random_secret_key() függvényt innen django.core.management.utils majd kinyomtat egy új, 50 karakterből álló titkos kulcsot, amelyet felhasználhat a projektjében. A fenti parancs futtatása előtt győződjön meg arról, hogy a projekt gyökérkönyvtárában van, azaz ugyanazon a helyen, ahol a manage.py fájlt a projektben.

Ugyanezt a parancsot a CLI-n kívül is futtathatja, ha létrehoz egy Python-fájlt, és beilleszti abba ezt a kódrészletet:

# importálja a get_random_secret_key() függvényt
tól től django.core.management.utils import get_random_secret_key

titkos_kulcs = get_random_secret_key()
nyomtatás (titkos_kulcs)

A kód futtatásához írja be ezt a CLI-be:

python fájlnév.py

A fenti parancsnak ki kell nyomtatnia egy új, 50 karakteres titkos kulcsot, amelyet felhasználhat a projektben.

Hogyan védheti meg titkos kulcsát környezeti változókkal

Valószínűleg nem szeretné minden alkalommal megváltoztatni a titkos kulcsát, amikor GitHub-kötelezettséget hajt végre. A titkos kulcs biztonságos megőrzésének hatékony módja egy környezeti változóban való tárolása. A környezeti változók olyan értékek, amelyeket a kódbázison kívül állíthat be, és amelyeket a program futás közben is elérhet. Tárolhatnak konfigurációt, API kulcsokat, adatbázis hitelesítő adatokat stb.

A környezeti változókat egy .env nevű fájlban tárolhatja, és kizárhatja őket a git-tárházból. Ezt úgy teheti meg, hogy létrehoz egy nevű fájlt .gitignore a projektedben. A .gitignore fájl azon fájlok és mappák listáját tartalmazza, amelyeket a Git nem követ nyomon.

A fájltípusok és a könyvtárszerkezetek projektenként változnak, de vannak ésszerű alapértelmezések, amelyeket minden nyelvhez alkalmazhat. A .gitignore sablonok listáját itt találja A GitHub gitignore tárháza. A következő lépések bemutatják, hogyan kell használni a .gitignore fájlt környezeti változókkal a Django programban.

1. Hozzon létre egy .gitignore fájlt

Az alapkönyvtárban – az Ön helyén manage.py fájl – hozzon létre a .gitignore fájlt, és másolja ki ennek tartalmát GitHub fájl bele. Ez a fájl egy minta .gitignore Python-projektekhez, amely kizárja azokat a gyakori fájlokat, amelyeket nem szeretne a tárhelyen tárolni.

Alternatív megoldásként hozzáadhat egy .gitignore fájlt a projekthez, miközben tárolót hoz létre a GitHubon. Ehhez kattintson a .gitignore hozzáadása lehetőséget, keresse meg a Python kifejezést, és jelölje ki.

2. Hozzon létre egy .env fájlt

Az alapkönyvtárban hozzon létre egy nevű fájlt .env. Ez a fájl az összes környezeti változót tárolja. Másolja ki és illessze be titkos kulcsát ebbe a fájlba (távolítsa el az idézőjeleket és a szóközöket körülötte). Íme egy példa:

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

Nyissa meg a .gitignore fájlt, és erősítse meg, hogy a .env fájlnév van benne. Ha nem, akkor hozzáadhatja a fájl nevét egy sorba:

.env

3. Telepítse a python-dotenv csomagot

Nyissa meg a CLI-t, és telepítse a python-dotenv csomagot, mint függőséget.

pip telepítése python-dotenv

4. Módosítsa a settings.py fájlt

A tiédben settings.py fájlt, importálja a következő csomagokat:

import os
tól től dotenv import load_dotenv

Ezután töltse be a környezeti változókat a sajátjából .env fájl a saját settings.py fájlt a load_dotenv() funkció:

load_dotenv()

Végül cserélje ki TITKOS KULCS változó ezzel a kódsorral:

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

Futtathatja a fejlesztői kiszolgálót annak ellenőrzésére, hogy a fenti konfiguráció működik. Ha igen, akkor a projektnek a várt módon kell futnia. Az alábbi parancs elindítja a fejlesztői szervert.

python manage.py runserver

Tartsa biztonságban titkos kulcsát környezeti változókkal

A titkos kulcs felfedése sok problémát okozhat Önnek, mint fejlesztőnek. Előfordulhat, hogy nem mindig tudja helyreállítani a projektet egy támadásból, különösen éles környezetben.

E negatív mellékhatások elkerülése érdekében mindig tárolja titkos kulcsát egy környezeti változóban, és használja a .gitignore fájlt, hogy távol tartsa a git-tárházától.