
خطاف أمان قبل الكتابة مستقل عن المضيف لعامل الترميز: يكتشف أنماط إدخال المستخدم عبر Semgrep ويصدر إرشادات أمان حتمية بدون LLM.
نقطة تفتيش أمنية لأدوات البرمجة بالذكاء الاصطناعي. تفحص كل ملف يكتبه مساعد الذكاء الاصطناعي، وتوقف الملفات الخطيرة قبل وصولها إلى القرص.
مساعدات البرمجة بالذكاء الاصطناعي (Claude Code, Codex, …) تكتب الأكواد بسرعة — بما في ذلك أكواد تتعامل مع أشياء مثل كلمات المرور، عناوين البريد الإلكتروني، مفاتيح الAPI، أو مدخلات المستخدم الخام. من السهل على المساعد أن يغذي تلك البيانات مباشرةً في استعلام قاعدة بيانات، أمر شل، أو استجابة HTTP دون التفكير في الأمان.
VibeGate يجلس بين المساعد ونظام الملفات الخاص بك. في كل مرة يحاول المساعد كتابة أو تعديل ملف، يقوم VibeGate بفحص الكود الجديد أولاً:
لا يوجد أي LLM مشارك في التحليل نفسه — إنه تحليل ثابت سريع وحتمي، لذلك لا يختلق أبدًا ولا يكلفك رموزًا (tokens).
فيما يلي كل ما يتحقق منه VibeGate حاليًا:
| الفحص | ما يكتشفه | النتيجة |
|---|---|---|
| حقن الأوامر | مدخلات غير منقاة تصل إلى أمر شل | يمنع |
| حقن SQL | مدخلات غير منقاة تصل إلى استعلام قاعدة بيانات | يمنع |
| حقن NoSQL | يُستخدم نص الطلب مباشرةً كعامل تصفية لقاعدة البيانات | يمنع |
| حقن القوالب (SSTI) | مصدر القالب نفسه، وليس بياناته فقط، يأتي من إدخال المستخدم | يمنع |
| إلغاء التسلسل غير الآمن | بيانات غير موثوقة تصل إلى أداة إلغاء تسلسل غير آمنة (pickle, YAML غير آمن، ...) | يمنع |
| اجتياز المسار | مدخلات غير منقاة تصل إلى قراءة/كتابة/حذف ملف | يمنع |
| XXE | يتم تحليل XML غير موثوق به مع تمكين الكيانات الخارجية | يمنع |
| XSS | يتم عرض مدخلات غير منقاة كـ HTML خام | يمنع |
| رفع ملف غير مقيد | يُستخدم اسم الملف المرفوع نفسه لبناء مسار الحفظ | يمنع |
| SSRF | يقوم الخادم بجلب رابط غير مُثبت في الكود الثابت | يحذر |
| إعادة توجيه مفتوحة | هدف إعادة توجيه غير مُثبت في الكود الثابت | يحذر |
| إسناد جماعي | يُمرر نص الطلب بالكامل إلى مُنشئ نموذج أو تحديثه | يحذر |
| بيانات حساسة في نص الطلب | رسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من نص الطلب | يحذر |
| بيانات حساسة في رابط/استعلام | رسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من سلسلة الاستعلام | يحذر |
| بيانات حساسة في الرؤوس | رسائل بريد إلكتروني، كلمات مرور، رموز مميزة، إلخ. مقروءة من رؤوس الطلب | يحذر |
| مسار ملف من إدخال المستخدم | يُستخدم متغير، وليس سلسلة ثابتة، كمسار ملف | يحذر |
| وسائط سطر الأوامر | تأتي البيانات من وسائط سطر الأوامر | يحذر |
| الإدخال القياسي | تأتي البيانات من stdin | يحذر |
| متغيرات البيئة | تأتي البيانات من متغير بيئة | يحذر |
| إجراء GitHub غير مثبت | يستخدم سير العمل علامة قابلة للتغيير (@v4) بدلاً من SHA للالتزام | يحذر |
pull_request_target غير آمن | يستخدم سير العمل مشغل pull_request_target | يحذر |
| تسجيل بيانات الاعتماد | يتم تمرير كلمة مرور أو مفتاح API أو رمز مميز إلى print/console.log/أداة تسجيل | يحذر |
| سر مخزَّن في الكود الثابت | متغير يُسمى مثل سر يُعطى قيمة حرفية تبدو حقيقية | يحذر |
القائمة الكاملة الحالية موجودة في guidance.TECHNICAL_RISKS و formatter.BLOCKING_CATEGORIES، في حالة ابتعاد هذا الجدول عن الدقة.
┌───────────────────────────────┐
│ تطلب من Claude Code أن │
│ يكتب أو يعدل ملفًا │
└───────────────┬───────────────┘
│
▼
┌───────────────────────────────┐
│ يحاول Claude Code حفظ │
│ الملف (أداة Write/Edit) │
└───────────────┬───────────────┘
│
▼
┌───────────────────────────────┐
│ خطاف VibeGate │
│ (يعمل تلقائيًا، │
│ قبل حفظ الملف) │
└───────────────┬───────────────┘
│
يفحص الكود الجديد باستخدام Semgrep
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌────────────────────┐ ┌────────────────────┐ ┌──────────────────────┐
│ لم يتم العثور │ │ مدخل خطير، │ │ مدخل خطير يصل │
│ على مدخل خطير │ │ لكن خطر أقل │ │ إلى مصدر حاسم │
│ │ │ (مثل العرض في │ │ (SQL/أمر/RCE، │
│ │ │ رد HTTP) │ │ حقن القالب) │
└─────────┬──────────┘ └─────────┬──────────┘ └───────────┬──────────┘
│ │ │
▼ ▼ ▼
يتم حفظ الملف، يتم حفظ الملف، لا يتم حفظ الملف.
لا يظهر شيء. بالإضافة إلى تحذير يرى Claude Code
في الطرفية مع سبب المنع
الخطر وكيفية إصلاحه. ويُقال له ما يجب
إصلاحه.
باختصار: الكود الآمن يمر دون تغيير، الكود الخطير لكن قابل للبقاء يُحفظ مع تحذير مرفق، والكود الذي يفصله خطوة واحدة عن أشياء مثل حقن SQL أو حقن الأوامر أو تنفيذ التعليمات البرمجية عن بُعد يُوقف قبل وصوله إلى القرص على الإطلاق.
إذا واجه VibeGate خطأً غير متوقع، فإنه يسمح دائمًا بالكتابة — فلا ينبغي أبدًا أن يكون وجود خلل في الخطاف هو السبب في منع عملك.
يحمل كل تحذير ومنع أيضًا تعليمات صريحة تطلب من Claude Code ذكر النتيجة لك في ردوده، وليس فقط إصلاحها بصمت. هذا ما يجعل نشاط VibeGate مرئيًا في المحادثة، وليس فقط في سجل طرفية تحتاج إلى البحث عنه.
| ما يراه VibeGate | ما يحدث |
|---|---|
| لا يوجد إدخال مستخدم، أو لغة لا يدعمها بعد | يُحفظ الملف بشكل طبيعي، لا يظهر شيء |
| تم العثور على إدخال مستخدم، لكن الخطر متوسط (مثل إعادة التوجيه المفتوحة، الإسناد الجماعي) | يُحفظ الملف، تظهر في الطرفية تحذير + إرشادات |
| يتدفق إدخال المستخدم غير المنقى إلى مصدر حاسم (استعلام SQL/NoSQL، أمر شل، محرك قوالب، أداة إلغاء تسلسل، محلل XML، مسار ملف، اسم ملف مرفوع، أو مخرجات HTML خام) | لا يتم حفظ الملف — يُخبر Claude Code بسبب المنع |
انظر الجدول في "ما المشكلة التي تحلها هذه الأداة؟" أعلاه للاطلاع على التفصيل الكامل لكل فحص: ما يمنع مقابل ما يحذر فقط.
اليوم يدعم VibeGate Python، JavaScript/TypeScript، Go، Java، PHP، و Ruby، ويتصل بـ Claude Code و Codex. يمكن إضافة المزيد من اللغات والأدوات دون الحاجة إلى تعديل المنطق الأساسي.
كما يفحص ملفات سير عمل GitHub Actions لخطأين شائعين في سلسلة توريد CI/CD: الإجراءات المثبتة بعلامة قابلة للتغيير (@v4) بدلاً من SHA للالتزام، والمحفز غير الآمن pull_request_target. كلاهما يحذر بدلاً من المنع، لأنهما فحوصات تقوية وليس دليلاً على استغلال فعال.
هذا تسجيل حقيقي لـ Claude Code وهو يبني تطبيق قارئ خلاصات RSS من البداية، مع تشغيل VibeGate طوال الوقت. لاحظ اللحظات التي يتوقف فيها Claude Code ويذكر بوضوح ما أشار إليه VibeGate، ولماذا، قبل المتابعة — بما في ذلك خطر حقيقي لـ SSRF في كود جلب الخلاصة يعمل على إصلاحه في الحال.