أجّل الإطلاق إذا كان مفتاح API داخل الكود، أو يستطيع النموذج استدعاء أداة حساسة دون تحقق مستقل، أو تُعرض مخرجاته كـHTML أو أوامر بلا تعقيم، أو لا تعرف كيف تلغي مفتاحاً مسرّباً وتراجع السجلات. نجاح التجربة الوظيفية لا يعني أن المنتج آمن.
بطاقة سريعة
- النطاق
- سكربتات AI وواجهات API والوكلاء
- المرجع
- OWASP GenAI Top 10 لعام 2025
- طريقة الاستخدام
- إثبات لكل بند لا علامة صح شكلية
- تاريخ التحقق
- 11 أكتوبر 2026
ارسم مسار البيانات والأفعال قبل تشغيل أي ماسح
ابدأ برسم بسيط: المستخدم، الواجهة، الخادم، مزود النموذج، قاعدة البيانات، التخزين، وأي Tool أو Webhook. اكتب عند كل سهم نوع البيانات ومن يستطيع قراءتها أو تغييرها. OWASP تضع حقن التعليمات، كشف المعلومات الحساسة، سلسلة التوريد، المعالجة غير الآمنة للمخرجات، والوكالة المفرطة ضمن أبرز مخاطر تطبيقات LLM.
- مفاتيح API وأسرار Webhooks وجلسات المستخدمين
- بيانات العملاء والملفات المرفوعة وسجل المحادثات
- الأدوات التي تقرأ أو ترسل أو تعدّل أو تحذف
- مصادر RAG والمحتوى الخارجي الذي يدخل السياق
- الحدود بين بيئة الاختبار والإنتاج
الأمان طبقات، وليس أداة واحدة
المراجع الرسمية تجمع بين حماية سلوك النموذج، تأمين المستودع، ومراجعة سلسلة التبعيات.



لا يصل المفتاح إلى المتصفح أو Git أو سجل الخطأ
ضع مفاتيح المزود وقاعدة البيانات وWebhooks في مخزن أسرار البيئة، لا داخل الكود أو ملف مرفوع للمستودع. افصل مفاتيح الاختبار عن الإنتاج، وامنح كل خدمة أقل صلاحية ممكنة. إذا ظهر مفتاح في Commit أو Log، ألغِه ودوّره فوراً؛ حذف السطر وحده لا يبطل المفتاح ولا يمحوه من التاريخ.
- ابحث في المستودع وتاريخه عن أنماط المفاتيح والملفات السرية
- فعّل Secret scanning وPush protection عندما تكون متاحة
- استخدم مفتاحاً مستقلاً لكل بيئة وخدمة
- وثّق مالك كل مفتاح وتاريخ تدويره وطريقة إلغائه
- أخفِ Headers والأجسام الحساسة من السجلات
تحقق من المستخدم في الخادم عند كل عملية حساسة
إخفاء زر في الواجهة ليس صلاحية. على الخادم التحقق من الجلسة والدور وملكية المورد وحدود الخطة. افصل صلاحيات المسؤول عن المستخدم، واختبر الوصول الأفقي: هل يستطيع مستخدم تغيير المعرّف وقراءة محادثة أو ملف أو فاتورة مستخدم آخر؟
- جلسات موقعة بمدة انتهاء وتجديد مضبوط
- Rate limiting لمحاولات الدخول وطلبات AI المكلفة
- موافقة إضافية لتغيير البريد أو الدفع أو مفاتيح التكامل
- حماية CSRF عند استخدام Cookies للعمليات المعدّلة
- إلغاء الجلسات بعد تغيير كلمة السر أو الاشتباه
عامل النص والملفات والويب كمدخل غير موثوق
قد تأتي التعليمات الخبيثة مباشرة من المستخدم أو بصورة غير مباشرة من صفحة أو ملف أو بريد يدخل إلى السياق. لا تعتمد على System Prompt وحده كحاجز أمني. افصل البيانات عن التعليمات، وحدد ما يستطيع النموذج فعله خارجياً، واختبر محاولات تجاوز السياسة وتسريب السياق.
توصي OpenAI بالاختبار الخصومي، وتقييد المدخلات والمخرجات، واستخدام Moderation والمراجعة البشرية حيث يلزم. ابنِ مجموعة اختبارات تشمل لغات متعددة ونصوصاً طويلة وتعليمات مخفية داخل المصادر المسترجعة.
لا تمنح النموذج وكالة أوسع من المهمة
تصف OWASP «الوكالة المفرطة» كخطر ينفذ فيه النظام أفعالاً ضارة بسبب مخرجات متلاعب بها أو غامضة. لا تعطِ أداة واحدة صلاحية قراءة كل شيء وكتابة كل شيء. صمّم Tools ضيقة، وتحقق من Arguments في الخادم، واربط التنفيذ بهوية المستخدم وصلاحياته.
| الفعل | الضبط المطلوب | قرار الإطلاق |
|---|---|---|
| قراءة بيانات | فلترة حسب المستخدم والحقول اللازمة فقط | يمكن آلياً بعد التفويض |
| إرسال بريد أو نشر محتوى | معاينة الوجهة والمحتوى وموافقة واضحة | تأكيد بشري |
| دفع أو حذف أو تغيير صلاحية | تحقق مستقل وسجل تدقيق وإمكانية تراجع | لا يُترك للنموذج وحده |
مخرج النموذج بيانات غير موثوقة، لا كود جاهز للتنفيذ
لا تمرر نص النموذج إلى SQL أو Shell أو HTML أو رابط Redirect بلا تحقق وتعقيم. استخدم مخرجات منظمة بـSchema صارم، واسمح بالقيم المتوقعة فقط، وأعد التحقق قبل الاستعمال. افحص نوع الملف وحجمه ومحتواه، وغيّر اسمه، وخزّنه خارج مسار التنفيذ.
- XSS وروابط javascript: وHTML غير موثوق
- Path traversal وأسماء ملفات خادعة
- SSRF عند جلب روابط يقدمها المستخدم أو النموذج
- أوامر Shell وSQL وTemplates المتولدة
- ملفات كبيرة أو مضغوطة تسبب استهلاكاً مفرطاً
ثبّت الإصدارات وافهم ما يدخل إلى الإنتاج
شغّل npm audit وراجع التقرير، ولا تستخدم npm audit fix --force بلا اختبار لأن التحديث الكبير قد يكسر التطبيق. احتفظ بـpackage-lock وشغّل npm ci في البناء، وراجع الحزم غير الضرورية وسكربتات التثبيت والمصدر والصيانة.
التقرير نقطة بداية لا شهادة أمان
توضح npm أن التدقيق يكشف ثغرات معروفة في شجرة التبعيات ويقترح معالجة عند توفرها، لكنه لا يفحص كل أنواع العيوب ولا Peer Dependencies.

فعّل Dependency graph وDependabot alerts، واستخدم Code scanning إن كانت خطتك ومستودعك يدعمانه. راجع أي تحديث أمني في بيئة اختبار قبل دمجه.
قلّل ما ترسله وما تحتفظ به
لا ترسل الاسم أو البريد أو أرقام الهوية إلى النموذج إذا لم تكن الميزة تحتاجها. راجع إعدادات الاحتفاظ لدى المزود، ومدة تخزين المحادثات، ومن يستطيع الوصول إلى Logs ونسخ الاحتياط. ضع سياسة حذف وطلب تصدير واضحة، وحدد الغرض القانوني لمعالجة بيانات العملاء حسب سوقك.
استخدم Moderation وفق سياسة منتجك، وسجل سبب الحظر أو الإحالة للمراجعة دون تخزين محتوى حساس أكثر من اللازم. للمجالات عالية المخاطر، اجعل المراجعة البشرية جزءاً من المسار لا استثناءً.
اعرف ماذا ستفعل في أول ساعة من الحادث
أنشئ Logs مترابطة بمعرّف طلب ومستخدم غير مباشر، وسجل محاولات الدخول وتغيير الصلاحيات واستدعاءات الأدوات ونتائج Webhooks وأخطاء المزود. لا تسجل الأسرار أو النصوص الحساسة افتراضياً. اضبط تنبيهات على ارتفاع التكلفة، معدل الأخطاء، محاولات Prompt Injection، وتكرار الأفعال الحساسة.
- إيقاف الأداة أو الميزة المتضررة دون إسقاط الموقع كله
- إلغاء المفاتيح والجلسات المتأثرة
- حفظ الأدلة ومراجعة نطاق التأثير
- إخطار الأطراف المطلوبة حسب العقد والقانون
- إصلاح السبب ثم اختبار سيناريو إعادة الاستغلال
لا تعتبر البند منجزاً دون دليل
- لا أسرار في العميل أو المستودع أو السجلات، وتم اختبار التدوير
- تفويض الخادم يمنع الوصول إلى موارد مستخدم آخر
- اختبارات Prompt Injection المباشرة وغير المباشرة تفشل بأمان
- كل Tool حساسة محدودة ومتحقق منها وتتطلب الموافقة المناسبة
- المخرجات والملفات والروابط تُفحص قبل التنفيذ أو العرض
- npm audit وCode scanning والتنبيهات تمت مراجعتها
- حدود الاستخدام والتكلفة والمدة والحجم تعمل
- النسخ الاحتياطي والاسترجاع وخطة الحوادث مجرّبة
إذا فشل بند حرج، أطلق نسخة محدودة بلا الأداة الحساسة أو أجّل الإطلاق. الأمن قرار نطاق، وليس مرحلة تجميل أخيرة.
حوّل القائمة إلى اختبارات داخل مشروعك
هذه روابط تعليمية رسمية وليست روابط أفلييت.

