كيف تنشر تطبيق v0 إلى الإنتاج (وتؤمّن مسارات الـAPI الخاصة به)
يوصلك v0 إلى معاينة تعمل بسرعة، لكن مسارات الـAPI فيه تُشحن دون مصادقة افتراضياً — إليك كيف تكتشف الثغرة وتُغلقها وتنشر بناء إنتاج حقيقياً ومؤمَّناً.
يُتقن v0 أمراً واحداً: تحويل موجّه نصّي إلى تطبيق Next.js يمكنك تجربته خلال دقائق. لكن ما لا يفعله هو جعل ذلك التطبيق آمناً لعرضه على الغرباء. التطبيقات المبنية بالذكاء الاصطناعي تُشحن غير آمنة افتراضياً — فحصٌ كبير لـ5,600 تطبيق مبني بأسلوب vibe coding وجد 2,038 ثغرة حرجة، وأكثر من 400 سرّ مكشوف، و175 تسريباً لبيانات شخصية — ولـv0 نمط إخفاق مميّز: مسارات API يستطيع أي شخص على الإنترنت استدعاءها لأن لا شيء يتحقق ممّن يستدعيها. إن كنت على وشك نشر تطبيق v0 إلى الإنتاج، فهذه هي الفجوة الأهم.
لماذا يترك v0 مسارات الـAPI لديك مكشوفة
حين يولّد v0 معالج مسار — ملفاً مثل app/api/orders/route.ts — فإنه يكتب المنطق الذي طلبته ويتوقف عند ذلك. كان الموجّه «اجلب الطلبات»، فيجلب الطلبات. لا يضيف سطراً يسأل «هل يُسمح لهذا الشخص بجلب الطلبات؟» لأنك لم تطلب ذلك، ولأن المعاينة لا تملك مستخدمين حقيقيين لحمايتها منهم. في Next.js، معالج مسار بلا فحص مصادقة هو نقطة نهاية عامة: يعمل لأي شخص يرسل طلباً إلى ذلك الرابط، بتسجيل دخول أو بدونه. هذه هي نفس فئة المشكلة التي تراها في أدوات أخرى — Lovable يشحن RLS معطوباً في Supabase، وBolt.new يزرع الأسرار داخل حزمة العميل، وCursor يُنتج BOLA (مستخدم يقرأ سجلّ آخر بتغيير معرّف) — لكنها في v0 تظهر كمسارات لم تُحمَ من الأساس.
كيف تتحقق من وجود الثغرة لديك
لا تحتاج خلفية أمنية لاكتشاف هذا. افتح مشروعك واسرد كل ملف تحت app/api. لكل route.ts، اقرأ المعالج من أعلاه إلى أسفله واطرح سؤالاً واحداً: قبل أن يلمس قاعدة البيانات أو يُعيد بيانات، هل يتحقق من هوية المستدعي؟ إن كان أول سطر ذي معنى استعلاماً بالفعل، فالمسار غير محميّ. ثم اختبره كما يفعل المهاجم: وأنت خارج تسجيل الدخول، استدعِ نقطة النهاية مباشرة باستخدام curl أو أدوات المطوّر في متصفحك — مثلاً اطلب الرابط الذي يستخدمه تطبيقك لتحميل بيانات خاصة. إن حصلت على بيانات حقيقية دون جلسة، فذلك المسار مفتوح للإنترنت بأكمله. افعل هذا لكل مسار، لا للواضحة منها فقط؛ فنقطة نهاية الإدارة أو التصدير المنسيّة عادةً ما تكون الأسوأ.
مسار API بلا فحص مصادقة ليس عيباً تراه في المعاينة — إنه باب تركته مفتوحاً، والشخص الذي سيجده لن يكون أنت.
كيف تؤمّن المسارات فعلياً
الإصلاح هو جعل كل مسار محميّ يرفض العمل حتى يعرف — ويثق — بمن يستدعيه، على الخادم لا على العميل أبداً. عملياً: استخرج الجلسة أو الرمز داخل المعالج (أو في middleware في Next.js يعمل قبله)، وارفض الطلب بـ401 إن لم توجد هوية صالحة، ثم افرض التفويض — أن هذا المستخدم بعينه يملك أو يُسمح له بالوصول إلى هذا السجلّ بعينه — قبل إعادة أي شيء. المصادقة تجيب عن «هل أنت مسجَّل الدخول»، والتفويض يجيب عن «هل يُسمح لك بلمس هذا»، وتخطّي الثاني هو ما يحوّل مساراً غير مصادَق إلى مسار يسرّب البيانات. استخدم مساعِدات مزوّد المصادقة على جهة الخادم بدل الوثوق برأس أو بقيمة من المتصفح، لأن كل ما يرسله العميل قابل للتزوير.
- اسرد كل ملف تحت app/api وتأكّد أن كل مسار محميّ يفحص الهوية قبل أن يستعلم أو يُعيد بيانات
- استخرج الجلسة/الرمز على الخادم داخل المعالج أو في middleware — لا تثق أبداً برأس يرسله العميل
- أعِد 401 عند غياب جلسة صالحة، و403 حين يطلب مستخدم مسجَّل شيئاً لا يملكه
- أضف فحص ملكية/تفويض (هذا المستخدم، هذا السجلّ)، لا مجرد فحص «مسجَّل الدخول»
- اختبر كل نقطة نهاية وأنت خارج الجلسة وكمستخدم ثانٍ — جرّب تغيير معرّف في الرابط وتأكّد أنك تُمنع
- انقل كل سرّ ومفتاح API إلى متغيّرات البيئة على المستضيف، خارج حزمة العميل وخارج git
- أضف تحديد معدّل على مسارات المصادقة والكتابة، ثم انشر إلى نطاقك الخاص مع HTTPS
من المعاينة إلى نشر إنتاج حقيقي
تأمين المسارات هو الجزء الذي يحميك؛ والباقي هو ما يجعله نشراً حقيقياً. أخرِج الكود من v0 إلى مستودع GitHub تملكه كي لا تبقى مقيّداً بالأداة. انشر تطبيق Next.js إلى مستضيف تتحكّم فيه (Vercel هو الخيار الطبيعي، لكن Cloudflare أو Railway أو Fly كلها تعمل)، وضع خلفه قاعدة بيانات مُدارة بدل أي شيء يُصفَّر عند إعادة النشر، ومرّر كل سرّ عبر متغيّرات البيئة على ذلك المستضيف. ثم تحقّق بالطريقة التي سيصل بها المستخدمون الحقيقيون: سجّل الدخول من حساب جديد، ونفّذ التدفقات الحسّاسة، وأعِد اختبار نقطة النهاية وأنت خارج الجلسة على الرابط الحيّ — لا على المعاينة. أهمية هذا أن نحو 10.5% فقط من الكود المولّد بالذكاء الاصطناعي يجتاز المراجعة الأمنية حتى حين يكون صحيحاً وظيفياً، لذا فإن «يعمل في v0» و«آمن في الإنتاج» ادّعاءان مختلفان فعلاً.
إن كنت تفضّل الإطلاق هذا الأسبوع بدل تعلّم middleware المصادقة والبنية التحتية من الصفر، فإن مهندسي البرمجيات والأمن الكبار في Comestare يُنجزون المهمة نيابةً عنك — بإحكام كل مسار، ونشره بشكل صحيح، وإطلاقه وتسويقه.