שמירה על המפתחות הפרטיים שלך מחוץ למאגרי קוד היא חיונית לאבטחה. גלה כיצד לעשות זאת וכיצד לשחזר אם כבר עשית את הטעות.
ב-Django, מפתח סודי ממלא תפקיד חיוני בשיפור האבטחה של האפליקציה שלך. הוא מסייע בניהול הפעלות של משתמשים, מגן מפני התקפות של זיוף בקשות חוצות אתרים (CSRF), ושומר על הנתונים שלך על ידי יצירה ואימות של חתימות קריפטוגרפיות, בין היתר.
עליך לשמור על המפתח הסודי של הפרויקט שלך מאובטח בכל עת. חשיפתו תשאיר את האפליקציה שלך חשופה להתקפות זדוניות של האקרים, ותפגע באבטחתה. אם המפתח הסודי שלך נפגע, עליך לדעת כיצד ליצור מפתח חדש כדי להפחית את ההשפעה השלילית על היישום שלך.
כיצד ניתן לחשוף את המפתח הסודי של הג'נגו שלך?
אתה יכול בטעות להפוך את המפתח הסודי שלך ל-Django לציבורי אם אתה מחייב אותו ללא ידיעתו ל-git או למאגר קוד מקור דומה. טעות זו נפוצה בקרב מתכנתים חדשים שעדיין ללמוד על GitHub. כאשר זה קורה, אתה יכול לעשות אחת מהפעולות הבאות:
- מחק את ה-commit.
- החלף את המפתח הסודי לחלוטין.
ייתכן שמחיקת ה-commit אינה האפשרות הטובה ביותר מכיוון שהיסטוריית ה-commit עדיין יכולה להיות נגישה באמצעים שונים, כגון עותקים מאוחסנים ב-GitHub או במערכות מבוזרות אחרות. הדבר הבטוח ביותר לעשות במצב כזה הוא להניח שהמפתח הסודי שלך כבר נפרץ.
עליך ליצור מפתח סודי חדש כדי להחליף את המפתח שנפרץ ולהגן עליו באמצעות משתני סביבה. בכל מקרה, עליך ללמוד כיצד ליצור מפתח סודי חדש ב-Django כדי להגן על האפליקציה שלך מפני דברים כמו התקפות של זיוף בקשות חוצות אתרים (CSRF)..
כיצד ליצור מפתח סודי חדש ב-Django
Django מספק פונקציה שנקראת get_random_secret_key() שעוזר לך ליצור מפתח סודי חדש בכל פעם שאתה מתקשר אליו. הפונקציה get_random_secret_key() היא פונקציית עזר המשתמשת ב- סודות מודול ב- Python ליצירת מפתח סודי מאובטח של 50 תווים.
כדי ליצור מפתח סודי חדש עם הפונקציה get_random_secret_key(), פתח את שלך ממשק שורת פקודה (CLI) והקלד את הפקודה הזו:
python manage.py shell -c "מאת django.core.management.utils ייבוא get_random_secret_key; print (get_random_secret_key())"
הפקודה לעיל מייבאת את הפונקציה get_random_secret_key() מ django.core.management.utils ולאחר מכן מדפיס מפתח סודי חדש של 50 תווים, שבו אתה יכול להשתמש בפרויקט שלך. לפני הפעלת הפקודה לעיל, ודא שאתה נמצא בספריית הבסיס של הפרויקט שלך, כלומר, באותו מיקום כמו manage.py קובץ בפרויקט שלך.
אתה יכול להריץ את אותה פקודה מחוץ ל-CLI שלך על ידי יצירת קובץ Python והדבקת קטע הקוד הזה בו:
# ייבא את הפונקציה get_random_secret_key()
מ django.core.management.utils יְבוּא get_random_secret_key
secret_key = get_random_secret_key()
הדפס (מפתח_סודי)
אתה יכול להפעיל את הקוד על ידי הקלדת זה ב-CLI שלך:
python fileName.py
הפקודה למעלה אמורה להדפיס מפתח סודי חדש של 50 תווים שתוכל להשתמש בו בפרויקט שלך.
כיצד להגן על המפתח הסודי שלך באמצעות משתני סביבה
אתה כנראה לא רוצה לשנות את המפתח הסודי שלך בכל פעם שאתה מבצע commit של GitHub. דרך יעילה לשמור על בטיחות המפתח הסודי שלך היא על ידי אחסונו במשתנה סביבה. משתני סביבה הם ערכים שאתה יכול להגדיר מחוץ לבסיס הקוד שלך, שהתוכנית שלך עדיין יכולה לגשת אליהם במהלך זמן הריצה. הם יכולים לאחסן תצורה, מפתחות API, אישורי מסד נתונים וכו'.
אתה יכול לאחסן את משתני הסביבה שלך בקובץ בשם .env ולא לכלול אותם ממאגר git שלך. אתה יכול לעשות זאת על ידי יצירת קובץ בשם .gitignore בפרויקט שלך. הקובץ .gitignore מכיל רשימה של קבצים ותיקיות ש-Git לא יעקוב אחריהם.
סוגי קבצים ומבני ספריות משתנים מפרויקט לפרויקט, אך יש ברירות מחדל הגיוניות שתוכל להחיל עבור כל שפה. אתה יכול למצוא רשימה של תבניות .gitignore ב מאגר gitignore של GitHub. השלבים הבאים מראים לך כיצד להשתמש בקובץ .gitignore עם משתני סביבה ב-Django.
1. צור קובץ .gitignore
בספריית הבסיס שלך - המיקום שלך manage.py קובץ - צור א .gitignore קובץ והעתיק את התוכן של זה קובץ GitHub לתוך זה. הקובץ הזה הוא דוגמה של .gitignore עבור פרויקטים של Python אשר אינו כולל קבצים נפוצים שלא תרצו במאגר שלכם.
לחלופין, אתה יכול להוסיף קובץ .gitignore לפרויקט שלך תוך יצירת מאגר ב- GitHub. כדי לעשות זאת, לחץ על הוסף .gitignore אפשרות, חפש את Python ובחר בו.
2. צור קובץ .env
בספריית הבסיס שלך, צור קובץ בשם .env. קובץ זה יאחסן את כל משתני הסביבה שלך. העתק והדבק את המפתח הסודי שלך לקובץ זה (הסר את המירכאות והרווחים מסביבו). הנה דוגמה:
SECRET_KEY=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1%
פתח את ה .gitignore קובץ ואשר כי .env שם הקובץ מופיע בו. אם זה לא, אתה יכול להוסיף אותו על ידי כתיבת שם הקובץ בפני עצמו בשורה:
.env
3. התקן את חבילת python-dotenv
פתח את ה-CLI שלך והתקן את python-dotenv חבילה כתלות.
התקנת pip python-dotenv
4. שנה את הקובץ settings.py שלך
אצלך settings.py קובץ, ייבא את החבילות הבאות:
יְבוּא OS
מ dotenv יְבוּא load_dotenv
לאחר מכן, טען את משתני הסביבה שלך .env קובץ לתוך שלך settings.py קובץ על ידי קריאה ל- load_dotenv() פוּנקצִיָה:
load_dotenv()
לבסוף, החלף את שלך מפתח סודי משתנה עם שורת הקוד הזו:
SECRET_KEY = os.environ.get('מפתח סודי')
אתה יכול להפעיל את שרת הפיתוח שלך כדי לאשר שהתצורה שלעיל עובדת. אם כן, הפרויקט שלך אמור לפעול כפי שהיית מצפה. הפקודה למטה תתחיל את שרת הפיתוח שלך.
שרת python manage.py
שמור על המפתח הסודי שלך עם משתני סביבה
חשיפת המפתח הסודי שלך עלולה לגרום לבעיות רבות עבורך כמפתחים. ייתכן שלא תמיד תוכל לשחזר את הפרויקט שלך מהתקפה, במיוחד בסביבת ייצור.
כדי למנוע את תופעות הלוואי השליליות הללו, אחסן תמיד את המפתח הסודי שלך במשתנה סביבה והשתמש ב- .gitignore קובץ כדי לשמור אותו מחוץ למאגר git שלך.