مفاتيح API والأسرار (مفتاح بوابة الدفع، مفتاح نموذج الذكاء الاصطناعي، كلمة مرور قاعدة البيانات) لا تُكتب داخل الكود ولا تُرسل إلى المتصفح أو تطبيق الجوال أبداً. احفظها في متغيرات البيئة أو مخزن أسرار على الخادم، واستدعِ الخدمات الخارجية من الخادم فقط. وإذا تسرّب مفتاح: ألغِه فوراً وأصدر بديلاً، ثم راجع السجلات.
- كيف احمي مفتاح api في تطبيقي
- وين احفظ api key
- تسرب مفتاح api ماذا افعل
- هل يمكن وضع مفتاح api في تطبيق الجوال
- حماية مفتاح بوابة الدفع
- متغيرات البيئة شرح
كيف تحمي مفاتيح API والأسرار في تطبيقك؟
الجواب المختصر: مفاتيح API والأسرار تعيش على الخادم فقط. لا تكتبها داخل ملفات الكود، ولا ترسلها إلى المتصفح، ولا تضعها داخل تطبيق iOS أو Android. تُحفظ في متغيرات البيئة أو في مخزن أسرار مخصص، ويقرأها الكود الخلفي عند التشغيل، وكل اتصال بخدمة خارجية حساسة يمر عبر الخادم.
لماذا هذا مهم لصاحب مشروع وليس فقط للمبرمج؟ لأن المفتاح يشبه بطاقة صرّاف مع رقمها السري. من يحصل على مفتاح بوابة الدفع قد يصدر استرداداً أو يطّلع على عمليات العملاء، ومن يحصل على مفتاح نموذج ذكاء اصطناعي يستطيع تشغيل آلاف الطلبات على حسابك، ومن يحصل على كلمة مرور قاعدة البيانات يرى كل شيء. والمشكلة أن التسرّب غالباً لا يُرى حتى تصل الفاتورة أو تأتي رسالة من عميل.
ومع انتشار البناء بالذكاء الاصطناعي صار الخطر أقرب: قد تلصق مفتاحاً في المحادثة ليعمل الربط بسرعة، فيضعه النموذج مباشرة في ملف يُرسل إلى المتصفح. لذلك هذا الدليل يشرح أنواع الأسرار، وأين تحفظها، وكيف تفحص تطبيقك، وماذا تفعل يوم يتسرّب مفتاح. وهو جزء من قائمة الأمان للتطبيقات المبنية بالذكاء الاصطناعي.
كل ما يصل إلى جهاز المستخدم يمكن أن يقرأه المستخدم. السر الذي يصل إلى المتصفح لم يعد سراً.
ما الأسرار الموجودة في تطبيقك أصلاً؟
أول خطوة أن تعرف ما تحميه. أغلب التطبيقات الخليجية الصغيرة فيها 5 إلى 10 أسرار على الأقل، بعضها لا ينتبه له صاحب المشروع لأنه أُضيف أثناء ربط خدمة ما.
| السر | مثال | ماذا يحدث لو تسرّب؟ |
|---|---|---|
| المفتاح السري لبوابة الدفع | مفتاح Moyasar أو Tap أو HyperPay أو Network International | عمليات استرداد أو اطلاع على بيانات عمليات العملاء |
| مفتاح نموذج الذكاء الاصطناعي | مفتاح مزود نموذج لغوي لميزة الدردشة أو التلخيص | استهلاك ضخم على حسابك وفاتورة غير متوقعة |
| بيانات قاعدة البيانات | رابط الاتصال وكلمة المرور | قراءة أو حذف كل بيانات العملاء والطلبات |
| مفتاح خدمة الرسائل | مزود OTP أو رسائل WhatsApp | إرسال رسائل على حسابك أو إغراق أرقام بالرسائل |
| سر التحقق من Webhook | توقيع إشعارات الدفع | تزوير إشعار «تم الدفع» لطلب لم يُدفع |
| مفاتيح التخزين والبريد | مفتاح تخزين الصور، مفتاح خدمة البريد | رفع ملفات ضارة أو إرسال بريد مزيف باسمك |
أين تتسرب الأسرار عادة؟
نادراً ما يتسرّب مفتاح بسبب اختراق معقد. الأغلب أنه يخرج من أماكن عادية جداً:
- داخل كود الواجهة: مفتاح مكتوب في ملف JavaScript يُرسل لكل زائر، ويُقرأ بسهولة من أدوات المطور في المتصفح.
- داخل تطبيق الجوال: ملفات التطبيق المنشور يمكن فكّها، فأي مفتاح بداخلها قابل للاستخراج.
- في GitHub: مفتاح دخل في commit قديم ثم حُذف، لكنه ما زال في تاريخ المستودع. والمستودع العام يُفحص آلياً من جهات كثيرة.
- في المحادثات والمجموعات: مفتاح أُرسل في WhatsApp لمطوّر مستقل أو لُصق في لقطة شاشة.
- في السجلات (logs): كود يطبع الطلب كاملاً مع الترويسات فيظهر المفتاح في سجل يراه أكثر من شخص.
- في رسائل الخطأ: صفحة خطأ تعرض إعدادات الخادم للزائر.
الطريقة الصحيحة: متغيرات البيئة واستدعاء الخدمات من الخادم
النمط السليم بسيط: الواجهة تطلب من خادمك، وخادمك هو من يكلّم بوابة الدفع أو نموذج الذكاء الاصطناعي بالمفتاح السري. المستخدم لا يرى المفتاح، ويمكنك على الخادم أن تتحقق من هوية المستخدم وصلاحياته وتضع حدوداً لعدد الطلبات قبل تمرير أي شيء.
- المتصفح يتصل بمزود الذكاء الاصطناعي مباشرة بالمفتاح
- المفتاح مكتوب في ملف إعدادات داخل المستودع
- نفس المفتاح في الاختبار والإنتاج
- مفتاح بصلاحيات كاملة لكل شيء
- المطوّر المستقل يملك المفتاح على جهازه
- المتصفح يتصل بخادمك، والخادم يتصل بالمزود
- المفتاح في متغيرات البيئة أو مخزن أسرار
- مفاتيح اختبار منفصلة عن مفاتيح الإنتاج
- مفتاح مقيّد بالصلاحيات اللازمة فقط
- الوصول للأسرار عبر لوحة الاستضافة بصلاحيات وأدوار
- 1اجرد الأسرار
اكتب قائمة بكل خدمة مربوطة بتطبيقك ونوع المفتاح الذي تستخدمه، ومن يملك الوصول إليها.
- 2انقلها إلى متغيرات البيئة
كل مفتاح سري يُحفظ في إعدادات الاستضافة باسم واضح، ويُقرأ من الكود الخلفي فقط.
- 3افصل البيئات
مفاتيح الاختبار (sandbox) في بيئة التجربة، ومفاتيح الإنتاج في البيئة الحية فقط. اقرأ بيئة الاختبار مقابل الإنتاج.
- 4قيّد كل مفتاح
فعّل أقل الصلاحيات، وقيّد النطاق أو عنوان IP إن كانت الخدمة تسمح، وضع حد إنفاق شهري لمفاتيح الذكاء الاصطناعي.
- 5تحقق من التوقيعات
أي Webhook من بوابة الدفع يُتحقق من توقيعه بالسر قبل تحديث حالة الطلب.
في استضافة فنّان تُحفظ الأسرار في إعدادات المشروع على الخادم، ويستدعي الوكيل خدمات الدفع والذكاء الاصطناعي من الكود الخلفي افتراضياً، لكن المراجعة تبقى مسؤوليتك قبل الإطلاق.
ماذا لو كنت تبني بالذكاء الاصطناعي؟
أدوات البناء بالذكاء الاصطناعي تختصر الوقت، لكنها تنفّذ ما تطلبه حرفياً أحياناً. إذا لصقت مفتاحاً في المحادثة وقلت «اربط الدفع بهذا المفتاح»، قد يضعه النموذج في أسهل مكان يعمل فوراً، وليس بالضرورة الأكثر أماناً. الحل أن تطلب النمط الآمن صراحة، ثم تتحقق منه.
راجع مشروعي أمنياً فيما يخص الأسرار. 1) اعرض لي قائمة بكل مفتاح API أو كلمة مرور أو سر يستخدمه التطبيق، وأين يُقرأ. 2) تأكد أن لا سر مكتوب داخل الكود أو داخل ملفات الواجهة أو تطبيق الجوال، وانقل أي سر إلى متغيرات البيئة على الخادم. 3) اجعل كل الاتصالات ببوابة الدفع وبنموذج الذكاء الاصطناعي وبخدمة رسائل OTP تمر من الخادم فقط، مع التحقق من تسجيل دخول المستخدم وحد أقصى لعدد الطلبات لكل مستخدم في الدقيقة. 4) تحقق من توقيع Webhook الدفع قبل تغيير حالة الطلب إلى مدفوع. 5) لا تطبع أي سر في السجلات أو رسائل الخطأ. 6) افصل مفاتيح بيئة الاختبار عن الإنتاج. اكتب لي تقريراً قصيراً بما غيّرته.
جرّبه في فنّانبعد التنفيذ افحص بنفسك: افتح التطبيق في المتصفح، ثم أدوات المطور، وابحث في الملفات المحمّلة عن أول أحرف مفتاحك السري. إذا ظهر، فهناك مشكلة. وللمزيد عن مراجعة ما يكتبه الذكاء الاصطناعي اقرأ هل الكود المولّد بالذكاء الاصطناعي آمن؟.
تسرّب مفتاح؟ خطة التصرف في 5 خطوات
التسرّب يحدث حتى للفرق المحترفة. الفرق بين حادثة صغيرة وكارثة هو سرعة التصرف. احفظ هذه الخطوات في مكان يعرفه فريقك:
- ألغِ المفتاح فوراً من لوحة الخدمة (revoke أو roll)، ولا تنتظر لتعرف هل استُخدم أم لا.
- أصدر مفتاحاً جديداً وضعه في متغيرات البيئة، ثم أعد نشر التطبيق وتأكد أن الخدمة تعمل.
- راجع السجلات والفواتير: عمليات دفع أو استرداد غريبة، استهلاك غير طبيعي لنموذج الذكاء الاصطناعي، رسائل أُرسلت من حسابك.
- أغلق مصدر التسرّب: أزل المفتاح من الكود، وإن كان في مستودع عام فاجعله خاصاً، وغيّر صلاحيات من لا يحتاج الوصول.
- وثّق وأبلغ عند الحاجة: إذا كان التسرّب قد يمس بيانات شخصية للعملاء، راجع التزاماتك في نظام حماية البيانات الشخصية المعمول به في بلدك.
قائمة فحص الأسرار قبل الإطلاق
- لا يوجد أي مفتاح سري داخل ملفات الواجهة أو تطبيق الجوال.
- كل الأسرار في متغيرات البيئة، بأسماء واضحة، وقائمة بمن يستطيع رؤيتها.
- مفاتيح الاختبار منفصلة، ومفاتيح الإنتاج لا تُستخدم إلا في البيئة الحية.
- لكل مفتاح ذكاء اصطناعي حد إنفاق وتنبيه عند تجاوزه.
- توقيع Webhook الدفع يُتحقق منه قبل تأكيد أي طلب.
- المستودع خاص، ولا مفاتيح في تاريخه، وملف الإعدادات المحلي مستثنى من Git.
- عند انتهاء عمل مطوّر مستقل: غيّر المفاتيح التي اطّلع عليها.
- خطة التسرّب مكتوبة ويعرفها شخصان على الأقل.
إذا كنت تربط خدمات خارجية كثيرة، فاقرأ أيضاً ربط تطبيقك بالخدمات الأخرى عبر API وWebhook، وللدفع تحديداً أساسيات أمان الدفع و3D Secure. والخطوة التالية العملية: خصّص ساعة هذا الأسبوع لجرد الأسرار وتطبيق القائمة أعلاه.
الخلاصة
- المفتاح السري مكانه الخادم فقط، لا الكود ولا المتصفح ولا تطبيق الجوال.
- افصل مفاتيح بيئة الاختبار عن مفاتيح الإنتاج، ولا تستخدم مفتاحاً حقيقياً أثناء التجربة.
- أعطِ كل مفتاح أقل صلاحية يحتاجها، وضع حدوداً للإنفاق على مفاتيح الذكاء الاصطناعي.
- مستودع GitHub يحفظ التاريخ كله: حذف المفتاح من آخر نسخة لا يكفي، يجب إلغاؤه.
- جهّز خطة تسرّب من 5 خطوات قبل أن تحتاجها: إلغاء، استبدال، نشر، مراجعة، توثيق.
أسئلة شائعة
وين احفظ مفتاح API في تطبيقي؟
هل يمكن وضع مفتاح API داخل تطبيق الجوال؟
ماذا افعل اذا تسرب مفتاح بوابة الدفع؟
هل حذف المفتاح من GitHub يكفي؟
كيف احمي مفتاح الذكاء الاصطناعي من الاستهلاك الزائد؟
اسأل مساعدك الذكي عن هذا الموضوع
انسخ هذا الطلب والصقه في مساعد الذكاء الاصطناعي الذي تستخدمه، ثم أضف تفاصيل حالتك.
أقرأ هذا الدليل: «مفاتيح API والأسرار: كيف تحميها وتبعدها عن الكود» https://fanann.com/ar/blog/api-keys-secrets-safety/ سؤالي: كيف احمي مفتاح api في تطبيقي اعتمد على هذه الصفحة كمصدر واشرح لي الإجابة خطوة بخطوة بما يناسب حالتي، واذكر ما يجب أن أتحقق منه قبل أن أبدأ، واذكر رابط الصفحة كمرجع.