Dotenv (.env)

مواصفة قياسي

يُستخدم ملف .env على نطاق واسع لتخزين متغيرات البيئة في ملفات نصية، لكن قواعد الصياغة وطريقة التحميل تختلف حسب الأداة؛ فهو ليس معيار إعدادات عالميًا.

تحويل ENV إلى JSON

محول مجاني داخل المتصفح للتحويل من ENV إلى JSON. قم بتحويل الملفات فوراً على جهازك.

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات ENV من خلال فحص تسلسل البايت الثنائي البادئ:

اختر الملفات أو أسقطها هنا

خاص - لا تغادر الملفات جهازك أبدًا

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (Magic Bytes)

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات ENV من خلال فحص تسلسل البايت الثنائي البادئ:

التوقيع الست عشري (الإزاحة 0):

41 2D 5A 5F 3D

تمثيل ASCII: KEY=VAL

التوحيد القياسي: مواصفة Twelve-Factor App / معيار dotenv

المواصفات الفنية

هيكلية الحاويةأزواج نصية من نوع key=value لتعريف متغيرات بيئة نظام التشغيل، مع دعم اختياري للبادئة export وعلامات الاقتباس
الضغطتدفق نصي غير مضغوط
ترتيب البايتات (Endianness)تدفق نصي بترميز UTF-8
مساحات الألوانلا ينطبق (ملف إعدادات)
القنوات والبنيةأسماء متغيرات البيئة وقيمها النصية وأسطر التعليقات (#)
الحد الأقصى للأبعادطول الملف غير محدود
الشفافيةلا ينطبق
البث والتحميل التدرجيتنفيذ متتابع بالتدفق، سطرًا بسطر

مصفوفة المقارنة التقنية: ENV مقابل المنافسين

السمة التقنيةENV (الحالي)JSONYAMLINI
إدارة الأسراريفصل الأسرار عن الكود المصدرييُضاف إلى المستودع افتراضيًايُضاف إلى المستودع افتراضيًايُضاف إلى المستودع افتراضيًا
وضوح الصياغةلا حاجة إلى نصوص تمهيدية مكررة: KEY=valueيتطلب أقواسًا وعلامات اقتباسيتطلب مسافات بادئة صارمةيتطلب رؤوس الأقسام
ربط بيئة نظام التشغيلمطابقة مباشرة 1 لـ 1 مع process.envيتطلب تحليل البيانات وتحويلها إلى كائنيتطلب تحليل البيانات وتحويلها إلى كائنيتطلب تحليل البيانات وتحويلها إلى كائن
البنية الهرمية للبياناتأزواج مفتاح وقيمة بسيطة بلا تداخلتدرج هرمي متداخل بلا حدودتدرج هرمي متداخل بلا حدودنطاقات أقسام من مستوى واحد

أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري

تعطل التطبيق مع رسالة 'TypeError: Cannot read property of undefined' لمتغيرات البيئة المتوقعة.

السبب الجذري: وجود مسافات حول علامة التساوي (مثل 'KEY = VALUE' بدلًا من 'KEY=VALUE') أو علامات اقتباس غير مغلقة.

الاسترداد: وحّد صياغة إعدادات البيئة ونسّقها باستخدام أداة تنقية الإعدادات من File2File.app.

تحليل الأمان ومتجهات الهجوم على المحلّل

لا ترفع ملفات .env إلى Git مطلقًا؛ أضفها دائمًا إلى .gitignore واستخدم خدمات لإدارة الأسرار في بيئة الإنتاج.

ناقلات الهجوم المعروفة

  • إضافة الملف إلى Git عن طريق الخطأ، ما يكشف مفاتيح AWS لبيئة الإنتاج وكلمات مرور قواعد البيانات على GitHub العام.
  • سوء إعداد خادم الويب بما يتيح الوصول إلى ملف .env عبر طلبات HTTP العامة.
  • حقن أوامر عبر توسيع متغيرات الصدفة دون تهريبها في أدوات تحميل dotenv.

أفضل الممارسات الدفاعية: لا ترفع ملفات .env إلى Git مطلقًا؛ أضفها دائمًا إلى .gitignore واستخدم خدمات لإدارة الأسرار في بيئة الإنتاج.

الأصول التاريخية والمحطات الرئيسية

2013ساعدت مكتبة dotenv مفتوحة المصدر في Node.js على انتشار ملفات .env في تطوير تطبيقات الويب الحديثة متعددة الطبقات.
2011نشر آدم ويغينز منهجية «التطبيق ذي العوامل الاثني عشر»، التي تلزم بتخزين الإعدادات في متغيرات البيئة حصريًا.
2011كانت Heroku من رواد إدارة متغيرات البيئة السحابية، ما ألهم استخدام ملفات .env لمحاكاتها محليًا.

المزايا الرئيسية والإيجابيات

  • من أفضل الممارسات الأمنية: إبقاء كلمات مرور قواعد البيانات ورموز API ومفاتيح التشفير السرية خارج مستودعات الشيفرة المصدرية.
  • تُستخدم ملفات .env في عدة بيئات، لكن الصياغة وطريقة التحميل تختلفان حسب الأداة.
  • يسهل قراءته وكتابته وأتمتة التعامل معه في نصوص النشر ومسارات التكامل المستمر.

القيود الفنية والسلبيات

  • خطر كبير للتسريب العرضي: قد يرفع المطورون ملفات '.env' إلى مستودعات GitHub العامة عن طريق الخطأ.
  • لا يوفر تشفيرًا مدمجًا للبيانات المخزنة من دون أدوات متخصصة مثل Doppler أو dotenv-vault.
  • لا يدعم هياكل البيانات المتداخلة المعقدة (فالقيم سلاسل نصية بسيطة فقط).

معلومات تقنية طريفة

  • تنص القاعدة الثالثة من منهجية Twelve-Factor App صراحةً على تخزين الإعدادات في متغيرات البيئة.
  • يبدأ اسم الملف '.env' بنقطة، لذا تتعامل معه أنظمة Unix كملف مخفي افتراضيًا.
  • توصي قوالب .gitignore عادةً بإضافة .env إلى قائمة الملفات المستثناة.

الأسئلة التقنية المتكررة

ما هو ملف .env؟

ملف .env هو ملف نصي بسيط يخزن المفاتيح السرية وكلمات مرور قواعد البيانات وإعدادات البيئة في أزواج KEY=VALUE، ليبقيها آمنة ومنفصلة عن الشيفرة المصدرية.

هل يجب أن أضيف ملف .env إلى GitHub؟

لا. لا ترفع ملف .env إلى GitHub أو أي مستودع عام. فقد يؤدي ذلك إلى كشف كلمات المرور السرية ومفاتيح API.

كيف يمكنني تحويل ملف ENV إلى JSON؟

يمكنك تحويل ملفات .env بأمان إلى كائنات JSON منظمة أو ملفات YAML باستخدام File2File.app مباشرةً في المتصفح، من دون أن تغادر أي بيانات جهازك.