Skip to content

אחסון בטוח של מפתחות וסיסמאות ב-Python בעזרת קבצי .env

כאשר אנו כותבים קוד, במיוחד בפרויקטים שדורשים אינטראקציה עם שירותים חיצוניים, אנו נתקלים בנתונים רגישים: סיסמאות, מפתחות API, אסימוני גישה וכו'. להטמיע ערכים אלו ישירות בקוד – מסוכן ולא מומלץ. במקום זאת, מומלץ להשתמש בקובץ .env.

מהו קובץ .env?

קובץ .env הוא קובץ טקסט פשוט, שכל שורה בו מייצגת משתנה סביבה בפורמט:

API_KEY=your-secret-api-key
DB_PASSWORD=super-secret-password

קובץ זה לא מועלה למערכת ניהול גרסאות (Git) והוא משמש אך ורק להגדרות מקומיות.

מדוע אסור לאחסן סודות בקוד?

דוגמה לפרקטיקה לקויה:

API_KEY = "sk-1234567890abcdef"  # ❌

אם קוד כזה יגיע למאגר ציבורי – תחשוף במקרה את הסודות. גם אם תמחק את הקובץ מאוחר יותר – ההיסטוריה של הקומיטים עדיין תשמור את המפתח.

התקנת python-dotenv

לעבודה עם קבצי .env ב-Python משתמשים לעיתים קרובות בספריה python-dotenv.

להתקנה:

pip install python-dotenv

כיצד להשתמש בקובץ .env ב-Python

  1. צור קובץ .env בשורש הפרויקט:
   API_KEY=sk-1234567890abcdef
   DB_PASSWORD=my_db_password
  1. הוסף את הקובץ .env לקובץ .gitignore כדי למנוע העלאתו ל-Git:
   .env
  1. טען את המשתנים ב-Python:
   from dotenv import load_dotenv
   import os

   load_dotenv()  # טוען את המשתנים מתוך הקובץ .env

   api_key = os.getenv("API_KEY")
   db_password = os.getenv("DB_PASSWORD")

כעת המשתנים api_key ו-db_password זמינים בקוד ללא הצורך להכניס את הערכים ידנית.

דוגמה מתקדמת

אם ברצונכם לטעון קובץ .env ממיקום ספציפי:

from dotenv import load_dotenv
from pathlib import Path
import os

env_path = Path('.') / 'config' / '.env'
load_dotenv(dotenv_path=env_path)

token = os.getenv("TG_BOT_TOKEN")

חלופה: משתני סביבה במערכת

ניתן גם להגדיר משתני סביבה ישירות במערכת ההפעלה (למשל, בסביבות CI/CD או בקונטיינרי Docker) ולהשתמש ב-os.getenv() ללא הספריה python-dotenv.

שיטות עבודה מומלצות

  • לעולם אל תעלה את קובץ ה-.env למאגר – הוסף אותו לקובץ .gitignore.
  • שמור קובץ .env.example עם ערכים ריקים בתור תבנית:
  # .env.example
  API_KEY=
  DB_PASSWORD=
  • השתמש בקבצי .env נפרדים לסביבות שונות:
  • .env.dev
  • .env.prod
  • .env.test וטען את הקובץ המתאים בהתאם להקשר.

סיכום

השימוש בקבצי .env מהווה צעד פשוט אך חשוב להגדלת הבטיחות והגמישות של הפרויקט. היתרונות כוללים:

  • הפרדת ההגדרות מהקוד,
  • הגנה על נתונים רגישים,
  • פישוט תהליכי הפריסה בסביבות שונות.

אל תכניסו סודות ישירות לקוד. השתמשו בקבצי .env, והפכו את הפרויקט שלכם לא רק לפונקציונלי אלא גם לבטוח.


כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *