خطر غير مرئي
عندما قررت رفع مشاريعي المحلية إلى GitHub، كان أول ما فكّرت فيه ليس الكود، بل ما يختبئ بين الملفات. ملف .env صغير، أو سطر إعدادات منسي، قد يحمل مفتاح API أو كلمة مرور قاعدة بيانات. وبمجرد أن يدخل هذا في تاريخ Git على مستودع عام، يصبح متاحاً للجميع — حتى لو حذفته لاحقاً، فهو محفوظ في التاريخ.
الشهادات الأمنية علّمتني قاعدة واحدة: أي مفتاح لمسه مستودع عام هو مفتاح محروق. لا يكفي حذفه؛ يجب تدويره.
الفحص قبل الرفع
قبل نشر أي مشروع، وضعت قائمة فحص صارمة. لكل مجلد أسأل: هل يحتوي على ملف .env حقيقي؟ توكنات؟ كلمات مرور؟ بيانات عملاء أو معلومات شخصية؟
ما ظهرت فيه أسرار سلك أحد ثلاثة مسارات: التعقيم (استبدال القيم الحقيقية بملف .env.example وبيانات وهمية)، أو البقاء خاصاً، أو عدم الرفع نهائياً إن كان يحوي بيانات عميل لا يمكن تعقيمها.
أدوات تحميك
الحاجز الأول هو ملف .gitignore مضبوط جيداً — يمنع ملفات البيئة والأسرار من الدخول أصلاً. الحاجز الثاني هو مراجعة git status قبل كل commit للتأكد من الملفات المرحّلة. أما إن تسرّب سرّ فعلاً في التاريخ، فأداة مثل git filter-repo تنظّف التاريخ بالكامل — لكن تبقى القاعدة: نظّف التاريخ، ثم دوّر المفتاح.
الخلاصة
الأمان ليس خطوة أخيرة تُضاف بعد الرفع، بل جزء من عملية النشر نفسها. دقيقة واحدة من الفحص قد تجنّبك تسريباً يكلّفك حساباً كاملاً أو ثقة عميل. عندما تبني بعقلية أمنية من البداية، يصبح النشر الآمن عادة لا عبئاً.
