المفاتيح والأسرار
الدرس 6 من 26 في دورة «البرمجة بالإحساس». مجاني، مع رسوم متحركة واختبار.
ما هو مفتاح API
الـ API هي الطريقة التي يتواصل بها برنامجك مع خدمة جهة أخرى، مثل نموذج ذكاء اصطناعي. مفتاح API هو كلمة المرور لهذا التواصل. به تعرف الخدمة أن الطلب منك، وإن كانت مدفوعة تخصم المال من حسابك. الفخ: كل ما في كود الصفحة يستطيع أي زائر رؤيته عبر «عرض مصدر الصفحة».
الواجهة الأمامية والخادم
الواجهة الأمامية (frontend) هي كل ما يُحمَّل في متصفح الزائر: الصفحة والأزرار وكودها. يمكن لأي شخص قراءتها. الخادم (backend) حاسوب على الإنترنت يعمل عليه برنامجك، ولا يرى الزائر كوده. ومن هنا القاعدة: الأسرار تعيش على الخادم فقط. المتصفح يطلب من الخادم، والخادم يتصل بالخدمة باستخدام المفتاح ويعيد النتيجة فقط.
لا تضعه في الواجهة الأمامية أبدًا
المفتاح في كود الصفحة أو في مستودع عام تجده البوتات بسرعة. المستودع هو مجلد المشروع مع كل سجل تعديلاته، مثلًا على GitHub. «عام» يعني أن الإنترنت كله يراه. البوتات تفحص هذه الأماكن تلقائيًا، وأنت من سيدفع ثمن طلبات الغرباء. لهذا يرسل الخادم الطلبات بالمفتاح، والمتصفح يتلقى النتيجة فقط.
Git يتذكر كل شيء
Git برنامج يحفظ سجل نسخ المشروع. كل عملية حفظ فيه تُسمّى commit. الفخ أن Git يتذكر كل شيء: إذا دخل مفتاح مرة في commit، يبقى في السجل حتى لو حذفته من الملف لاحقًا. لذلك يجب ألا يدخل ملف المفاتيح إلى Git أبدًا. كيف تفعل ذلك؟ في الشريحة التالية.
أين تحفظ المفاتيح
على حاسوبك تُحفظ المفاتيح في ملف .env، وهو ملف نصي بسيط للإعدادات. يُكتب اسمه في .gitignore، وهي قائمة الملفات التي يجب أن يتجاهلها Git. بهذا لا يدخل .env إلى Git. على الاستضافة، أي الخدمة التي يعيش عليها موقعك، توضع المفاتيح في قسم الأسرار. تسرّب مفتاح؟ ألغِه فورًا من لوحة الخدمة وأنشئ مفتاحًا جديدًا.
اختبر نفسك
- أين يمكن حفظ مفتاح API؟
الإجابة الصحيحة: في أسرار الاستضافة أو في .env. يجب ألا يصل المفتاح إلى المتصفح ولا إلى Git. المفتاح المخفي في كود الصفحة يظهر مع ذلك عبر «عرض مصدر الصفحة». - لماذا يُضاف .env إلى .gitignore؟
الإجابة الصحيحة: حتى لا تدخل مفاتيح .env إلى Git. يقول .gitignore لـ Git: لا تحفظ هذا الملف. وبهذا تبقى المفاتيح خارج سجل المشروع. - تسرّب مفتاح بالخطأ. ما أول خطوة؟
الإجابة الصحيحة: إلغاؤه وإنشاء مفتاح جديد. ربما نُسخ المفتاح بالفعل، والحذف أو الإخفاء لا يلغي ذلك. المفتاح الملغى يتوقف عن العمل لدى الجميع.