T1 · Beginner · 6 دقيقةثابت · آخر مراجعة: 2026-08-19مسودة أولى — بنراجعها

المفاتيح والـ Secrets — تأمين مفتاح الـ API

في سطر واحد · مفتاح الـ API هو كلمة السرّ اللي بتثبت إنك إنت، وأي حد يحطّ إيده عليه يقدر يصرف من رصيدك — فبيتخزّن في متغيّرات البيئة، مش في الكود.

القاموس:Data ExfiltrationLLMLeast Privilege
ليه ده مهم؟

تسريب مفتاح واحد على GitHub ممكن يكلّفك فلوس كتير في ساعات. حماية الـ secrets مش رفاهية، دي أول درس في أمان أي تطبيق حقيقي.

زي مفتاح البيت: متعلّقهوش على الباب من برّه. بتحطّه في مكان آمن (env var / secrets manager) والكود بينده عليه وقت التشغيل بس، وميظهرش أبدًا في الـ repo.

خلينا نفهمها بمثال

المفتاح زي كارت الأوتيل: بيفتحلك الأوضة، وأي حد يلاقيه يدخل مكانك ويتحاسب على حسابك. عشان كده الريسبشن يقدر يلغيه في ثانية ويطبعلك كارت جديد — نفس فكرة إنك تلغي المفتاح وتطلّع بديل لو ضاع.

بدل ما تكتب المفتاح جوّه الكود، بتحطّه في .env (وتضيفه لـ .gitignore) وتقراه من process.env، وفي البرودكشن من secrets manager؛ ولو اتسرّب بالغلط، بتلغيه (revoke) وتطلّع واحد جديد على طول.

طيب بتحصل إزاي؟

المزوّد بيطلّعلك مفتاح لكل حساب أو مشروع، وبتبعته في header الـ Authorization مع كل call. محليًا بيعيش في ملف .env متضاف للـ .gitignore، وفي البرودكشن في secrets manager أو env vars بتاعة المنصة — الكود بيقراه وقت التشغيل بس. ولو اتسرّب، بتعمل revoke فورًا وتطلّع بديل. والممارسة الصح إن كل بيئة وكل تطبيق ياخد مفتاح لوحده بأقل صلاحيات ممكنة (least privilege) — عشان لو مفتاح اتسرّب، الضرر يبقى محدود ومعروف مصدره.

خلينا نبنيها

🧪 جرّب بنفسك: هات سكريبت فيه مفتاح مكتوب جوّه الكود، وانقله لملف .env متضاف للـ .gitignore واقراه من process.env. وخلّي التطبيق يقع برسالة واضحة لو المفتاح مش موجود — بدل ما يبعت request بمفتاح undefined ويرجعلك 401 غامض.

أشهر الأخطاء

(١) ترفع ملف .env أو تكتب المفتاح جوّه الكود — الـ bots بتمسح GitHub وبتلاقي المفاتيح في دقايق. (٢) تحطّ المفتاح في كود الـ frontend — أي حد يفتح DevTools ينسخه ويصرف من حسابك. (٣) مفتاح واحد مشترك لكل البيئات ومن غير rotation — لو اتسرّب مش هتعرف منين، وإلغاؤه هيوقّع كل حاجة مرة واحدة.

إمتى تستخدمها؟

من أول سطر كود: env var محليًا وsecrets manager في البرودكشن، ومفتاح منفصل لكل بيئة (dev/staging/prod) من البداية — التعوّد أسهل من التصليح.

وإمتى لأ؟

المفتاح عمره ما يظهر في: الـ repo، كود الـ frontend، الـ logs، رسايل الشات، أو أي خدمة طرف تالت مش محتاجاه. ولو مش متأكد اتسرّب ولا لأ — اعتبره اتسرّب واعمل revoke.

خلينا نبنيهاالقراءة خلصت — دلوقتي ابنيها بإيدك.اقرا المفتاح من env var بأمان