تخطّ إلى المحتوىتواصل معنا
الاستضافة والأمان

مفاتيح API والأسرار: كيف تحميها وتبعدها عن الكود

أين تحفظ مفتاح بوابة الدفع ومفتاح الذكاء الاصطناعي وكلمة مرور قاعدة البيانات؟ دليل عملي لحماية الأسرار في تطبيقك، وماذا تفعل لو تسرّب مفتاح.

فريق فنّان9 دقائق قراءة
واتساب
الإجابة المختصرة

مفاتيح 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. 1
    اجرد الأسرار

    اكتب قائمة بكل خدمة مربوطة بتطبيقك ونوع المفتاح الذي تستخدمه، ومن يملك الوصول إليها.

  2. 2
    انقلها إلى متغيرات البيئة

    كل مفتاح سري يُحفظ في إعدادات الاستضافة باسم واضح، ويُقرأ من الكود الخلفي فقط.

  3. 3
    افصل البيئات

    مفاتيح الاختبار (sandbox) في بيئة التجربة، ومفاتيح الإنتاج في البيئة الحية فقط. اقرأ بيئة الاختبار مقابل الإنتاج.

  4. 4
    قيّد كل مفتاح

    فعّل أقل الصلاحيات، وقيّد النطاق أو عنوان IP إن كانت الخدمة تسمح، وضع حد إنفاق شهري لمفاتيح الذكاء الاصطناعي.

  5. 5
    تحقق من التوقيعات

    أي Webhook من بوابة الدفع يُتحقق من توقيعه بالسر قبل تحديث حالة الطلب.

في استضافة فنّان تُحفظ الأسرار في إعدادات المشروع على الخادم، ويستدعي الوكيل خدمات الدفع والذكاء الاصطناعي من الكود الخلفي افتراضياً، لكن المراجعة تبقى مسؤوليتك قبل الإطلاق.

ماذا لو كنت تبني بالذكاء الاصطناعي؟

أدوات البناء بالذكاء الاصطناعي تختصر الوقت، لكنها تنفّذ ما تطلبه حرفياً أحياناً. إذا لصقت مفتاحاً في المحادثة وقلت «اربط الدفع بهذا المفتاح»، قد يضعه النموذج في أسهل مكان يعمل فوراً، وليس بالضرورة الأكثر أماناً. الحل أن تطلب النمط الآمن صراحة، ثم تتحقق منه.

انسخ هذا الطلب إلى فنّان

راجع مشروعي أمنياً فيما يخص الأسرار. 1) اعرض لي قائمة بكل مفتاح API أو كلمة مرور أو سر يستخدمه التطبيق، وأين يُقرأ. 2) تأكد أن لا سر مكتوب داخل الكود أو داخل ملفات الواجهة أو تطبيق الجوال، وانقل أي سر إلى متغيرات البيئة على الخادم. 3) اجعل كل الاتصالات ببوابة الدفع وبنموذج الذكاء الاصطناعي وبخدمة رسائل OTP تمر من الخادم فقط، مع التحقق من تسجيل دخول المستخدم وحد أقصى لعدد الطلبات لكل مستخدم في الدقيقة. 4) تحقق من توقيع Webhook الدفع قبل تغيير حالة الطلب إلى مدفوع. 5) لا تطبع أي سر في السجلات أو رسائل الخطأ. 6) افصل مفاتيح بيئة الاختبار عن الإنتاج. اكتب لي تقريراً قصيراً بما غيّرته.

جرّبه في فنّان

بعد التنفيذ افحص بنفسك: افتح التطبيق في المتصفح، ثم أدوات المطور، وابحث في الملفات المحمّلة عن أول أحرف مفتاحك السري. إذا ظهر، فهناك مشكلة. وللمزيد عن مراجعة ما يكتبه الذكاء الاصطناعي اقرأ هل الكود المولّد بالذكاء الاصطناعي آمن؟.

تسرّب مفتاح؟ خطة التصرف في 5 خطوات

التسرّب يحدث حتى للفرق المحترفة. الفرق بين حادثة صغيرة وكارثة هو سرعة التصرف. احفظ هذه الخطوات في مكان يعرفه فريقك:

  1. ألغِ المفتاح فوراً من لوحة الخدمة (revoke أو roll)، ولا تنتظر لتعرف هل استُخدم أم لا.
  2. أصدر مفتاحاً جديداً وضعه في متغيرات البيئة، ثم أعد نشر التطبيق وتأكد أن الخدمة تعمل.
  3. راجع السجلات والفواتير: عمليات دفع أو استرداد غريبة، استهلاك غير طبيعي لنموذج الذكاء الاصطناعي، رسائل أُرسلت من حسابك.
  4. أغلق مصدر التسرّب: أزل المفتاح من الكود، وإن كان في مستودع عام فاجعله خاصاً، وغيّر صلاحيات من لا يحتاج الوصول.
  5. وثّق وأبلغ عند الحاجة: إذا كان التسرّب قد يمس بيانات شخصية للعملاء، راجع التزاماتك في نظام حماية البيانات الشخصية المعمول به في بلدك.

قائمة فحص الأسرار قبل الإطلاق

  • لا يوجد أي مفتاح سري داخل ملفات الواجهة أو تطبيق الجوال.
  • كل الأسرار في متغيرات البيئة، بأسماء واضحة، وقائمة بمن يستطيع رؤيتها.
  • مفاتيح الاختبار منفصلة، ومفاتيح الإنتاج لا تُستخدم إلا في البيئة الحية.
  • لكل مفتاح ذكاء اصطناعي حد إنفاق وتنبيه عند تجاوزه.
  • توقيع Webhook الدفع يُتحقق منه قبل تأكيد أي طلب.
  • المستودع خاص، ولا مفاتيح في تاريخه، وملف الإعدادات المحلي مستثنى من Git.
  • عند انتهاء عمل مطوّر مستقل: غيّر المفاتيح التي اطّلع عليها.
  • خطة التسرّب مكتوبة ويعرفها شخصان على الأقل.

إذا كنت تربط خدمات خارجية كثيرة، فاقرأ أيضاً ربط تطبيقك بالخدمات الأخرى عبر API وWebhook، وللدفع تحديداً أساسيات أمان الدفع و3D Secure. والخطوة التالية العملية: خصّص ساعة هذا الأسبوع لجرد الأسرار وتطبيق القائمة أعلاه.

الخلاصة

  • المفتاح السري مكانه الخادم فقط، لا الكود ولا المتصفح ولا تطبيق الجوال.
  • افصل مفاتيح بيئة الاختبار عن مفاتيح الإنتاج، ولا تستخدم مفتاحاً حقيقياً أثناء التجربة.
  • أعطِ كل مفتاح أقل صلاحية يحتاجها، وضع حدوداً للإنفاق على مفاتيح الذكاء الاصطناعي.
  • مستودع GitHub يحفظ التاريخ كله: حذف المفتاح من آخر نسخة لا يكفي، يجب إلغاؤه.
  • جهّز خطة تسرّب من 5 خطوات قبل أن تحتاجها: إلغاء، استبدال، نشر، مراجعة، توثيق.

أسئلة شائعة

وين احفظ مفتاح API في تطبيقي؟
في متغيرات البيئة على الخادم أو في مخزن أسرار توفره الاستضافة. الكود الخلفي يقرأ المفتاح عند التشغيل، ولا يُكتب داخل ملفات الكود ولا يصل للمتصفح أو تطبيق الجوال.
هل يمكن وضع مفتاح API داخل تطبيق الجوال؟
لا للمفاتيح السرية. ملفات التطبيق المنشور يمكن فكّها واستخراج ما بداخلها. التطبيق يتصل بخادمك، والخادم يتصل بالخدمة بالمفتاح السري. المفاتيح العامة المصممة للظهور مسموحة إذا كانت مقيدة.
ماذا افعل اذا تسرب مفتاح بوابة الدفع؟
ألغِه من لوحة البوابة فوراً وأصدر مفتاحاً جديداً، ثم حدّث متغيرات البيئة وأعد النشر، وراجع العمليات الأخيرة وعمليات الاسترداد، وتواصل مع دعم البوابة إذا رأيت أي عملية غير معروفة.
هل حذف المفتاح من GitHub يكفي؟
لا. Git يحفظ تاريخ كل التعديلات، والمستودعات العامة تُفحص آلياً بسرعة. اعتبر المفتاح مكشوفاً وألغِه، ثم أزله من الكود.
كيف احمي مفتاح الذكاء الاصطناعي من الاستهلاك الزائد؟
اجعل الاستدعاء من الخادم فقط، واشترط تسجيل الدخول، وضع حداً لعدد الطلبات لكل مستخدم، وفعّل حد إنفاق شهري وتنبيهات من لوحة المزود.

اسأل مساعدك الذكي عن هذا الموضوع

انسخ هذا الطلب والصقه في مساعد الذكاء الاصطناعي الذي تستخدمه، ثم أضف تفاصيل حالتك.

أقرأ هذا الدليل: «مفاتيح API والأسرار: كيف تحميها وتبعدها عن الكود» https://fanann.com/ar/blog/api-keys-secrets-safety/ سؤالي: كيف احمي مفتاح api في تطبيقي اعتمد على هذه الصفحة كمصدر واشرح لي الإجابة خطوة بخطوة بما يناسب حالتي، واذكر ما يجب أن أتحقق منه قبل أن أبدأ، واذكر رابط الصفحة كمرجع.

مصطلحات في هذا المقال

فكرتك تستاهل تطلع للنور.

صِفها بالعربي أو الإنجليزي، وفنّان يبنيها ويختبرها وينشرها — بدون أي خبرة في البرمجة. ابدأ مجاناً، بدون بطاقة ائتمان.