FixVibe

// docs / security guides / lovable checklist

Lovable security checklist: 25 items before launch

Lovable is a fast path from idea to a published full-stack app on Supabase and Vite. This checklist targets the risks that come with that stack: RLS that must be enabled and tightened on every table Lovable creates, test keys from integrations, import.meta.env leaking env vars into the Vite bundle, GitHub sync exposing secrets, and missing security headers. 25 items across secrets, database, auth, headers, deployment, and Lovable-specific gotchas.

PRE = pre-deploy (audit your source). DEPLOY = at deploy time. POST = post-deploy verification.

الأسرار ومفاتيح API (5 عناصر)

يمكن لتكاملات سوق Lovable وVite build أن تتسبب في تسرب env vars إلى حزمة العميل إذا لم تكن حذرًا.

  1. PRE — Audit import.meta.env references. يعرض Vite جميع المتغيرات VITE_ البادئة كـ import.meta.env.VITE_* في العميل. لا تستخدم أبدًا VITE_SUPABASE_SERVICE_KEY أو VITE_STRIPE_SECRET. قم بالتوجيه عبر نقطة نهاية للخادم فقط بدلاً من ذلك.
  2. PRE — Replace Lovable marketplace test keys with live restricted keys. Lovable's Stripe / إعادة الإرسال / إلخ. يتم أحيانًا شحن عمليات التكامل مع مفاتيح sk_test_* أو pk_test_*. قبل بدء البث المباشر، قم بتبديلها بمفاتيح مباشرة مقيدة تحد من الضرر في حالة اختراقها.
  3. PRE — Check the .env file is not committed. Lovable يدعم ملف .env بمفاتيح التكامل. قم بتشغيل git ls-files .env. إذا تم تعقبه، قم بإزالته على الفور: git rm --cached .env وأضفه إلى .gitignore.
  4. PRE — Verify GitHub sync doesn't expose service keys. إذا تمت مزامنة Lovable مع GitHub، فتأكد من أن سير عمل الإجراءات GitHub أو إعدادات Vercel لا تعكس الأسرار في سجلات الإنشاء. تحقق من الإجراءات ← تشغيل سير العمل ← انقر فوق تشغيل ← تحقق من طباعة أي سر.
  5. يمكن أن يؤدي إنشاء Vite الخاص بـ POST — Run Secrets in JavaScript Bundles on the deployed app. Lovable إلى تسريب المفاتيح إلى import.meta.env. سوف يجدهم الفحص السلبي.

التحكم في الوصول إلى قاعدة البيانات (5 عناصر)

Every table Lovable creates needs RLS enabled and tightened before production.

  1. PRE — Enable RLS on every public table. In Supabase Studio, Tables → for each public.* table → the RLS toggle must be ON, with policies for each command.
  2. PRE — Write explicit policies per table and role. الحد الأدنى: SELECT يسمح للمستخدم بقراءة الصفوف التي يوجد بها user_id = auth.uid() فقط. Lovable يقوم أحيانًا بإنشاء جداول بدون سياسات؛ يجب عليك إضافتها.
  3. PRE — Check Lovable's generated policies, not just the toggle. A policy such as USING (true) keeps RLS "on" while letting every caller through. Scope each policy to auth.uid(). (FORCE ROW LEVEL SECURITY only affects the table owner; it does not fix an open policy.)
  4. DEPLOY — Re-verify RLS is enforced after deploy. افتح Supabase الاستوديو بعد النشر. يجب أن يكون تبديل RLS لكل جدول هو ON. إذا لم يكن الأمر كذلك، فلن يتم تطبيق الترحيل الخاص بك.
  5. POST — Run a FixVibe scan on the deployed app. Check the Supabase Row-Level Security result: it shows any table an anonymous visitor can read with your public key.

المصادقة والجلسات (4 عناصر)

مصادقة Lovable هي Supabase مصادقة. يكمن الخطر في كيفية ربط Lovable معًا.

  1. PRE — Ensure all API routes use getUser(), not getSession(). getSession() يقرأ ملف تعريف ارتباط لم يتم التحقق منه؛ getUser() يتم التحقق من صحته باستخدام Supabase. ابحث عن getSession() في معالجات API واستبدلها.
  2. PRE — Check Lovable's generated auth handlers for token expiry. تحتاج الرموز المميزة لـ Magic-link إلى انتهاء الصلاحية بواسطة الخادم. الافتراضي هو ساعة واحدة - لا تقم بالتجاوز إلا إذا كان ذلك ضروريًا.
  3. PRE — Audit the sign-in redirect guard. يجب أن تبدأ معلمة الاستعلام next بـ /، وليس // أبدًا. إذا كان مفقودًا، أضف الواقي يدويًا.
  4. POST — Test logout destroys the session. قم بتسجيل الدخول، وتسجيل الخروج، وفحص ملفات تعريف الارتباط (DevTools → Application → Cookies). يجب مسح ملف تعريف ارتباط الجلسة.

HTTP الرؤوس وCSP (3 عناصر)

Lovable لا تضيف سقالة Vite CSP بشكل افتراضي. تتطلب المضيفات الثابتة تكوينًا واضحًا للرأس.

  1. PRE — Add security headers via your host's config. Vercel: vercel.json headers المصفوفة. نيتليفي: _headers الملف. تضمين CSP، HSTS، خيارات X-Frame، خيارات نوع المحتوى X.
  2. PRE — CSP must not have 'unsafe-inline' in script-src. استخدم الحروف الفاصلة أو التجزئة. Lovable سيعمل تصميم Vite الخاص بـ CSP بشكل صارم.
  3. POST — Run HTTP Security Headers on the deployed URL. يُبلغ الفحص عن الرؤوس المفقودة ويوفر إرشادات الإصلاح الخاصة بالنظام الأساسي.

نظافة النشر (5 عناصر)

Lovable hosts published apps itself (Lovable docs). If you export the code and deploy it to Vercel, Netlify or Cloudflare Pages instead, each host handles headers and env vars differently.

  1. DEPLOY — Scope env vars to Production only. Vercel: الإعدادات ← متغيرات البيئة ← نطاق كل منها إلى Proالانتاج. لا تشارك مطلقًا مفاتيح الاختبار Stripe مع Preview.
  2. DEPLOY — Verify build logs don't echo secrets. تحقق من سجلات البناء الخاصة بموفر النشر. إذا تمت طباعة أي سر، فسيتم اختراقه.
  3. DEPLOY — Add security headers to vercel.json or _headers. بالنسبة إلى Vercel، استخدم headers التكوين. بالنسبة إلى Netlify / Cloudflare، استخدم الملف _headers في الدليل العام.
  4. POST — Test a Vercel Preview link in a private browser window. تأكد من أن CSP nonce جديد في كل طلب وأن الرؤوس موجودة.
  5. POST — Rotate any test key that ever shipped to production. حتى لو كان مفتاحًا sk_test_*، قم بتدويره بعد رؤيته في الإنتاج.

Lovable- مشكلات محددة (3 عناصر)

الأنماط الفريدة لتدفق السقالة والنشر Lovable:

  1. import.meta.env is Vite-specific and all-or-nothing. يكشف Vite عن VITE_* vars في حزمة العميل حسب التصميم. لا يوجد مفهوم env للخادم فقط في Vite بدون حدود API منفصلة. الافتراضي Lovable هو عميل ثقيل؛ يجب عليك إضافة مسارات API للعمليات الحساسة.
  2. GitHub sync can auto-commit without review. إذا قام Lovable بمزامنة التغييرات مرة أخرى إلى GitHub، فتأكد من عدم تشغيل سير العمل تلقائيًا بدون موافقتك. وإلا، فقد يصل التحديث الضار إلى المستوى الرئيسي.
  3. Static-host headers are a different beast than middleware. Vercel، وNetlify، وCloudflare تتعامل جميع الصفحات مع الرؤوس بشكل مختلف. إذا قمت بتبديل المضيفين، فأعد التحقق من تطبيق تكوين الرأس الخاص بك - فقد لا يعطيك النظام الأساسي خطأ إذا كان الرأس غير مدعوم.

الخطوات التالية

قم بمراجعة general vibe coding security checklist للحصول على 51 عنصرًا متعدد الأدوات. ثم راجع step-by-step hardening للحصول على أنماط أعمق في CSP وRLS والمصادقة.

// scan your app

كفّ عن القراءة. ابدأ بإيجاد الثغرات في تطبيقك.

Drop in a URL — FixVibe runs every passive check from this guide plus the rest of its 230+ passive checks, usually in under a minute. Free, no install, no card.

  • Free الطبقة — 3 عمليات مسح/شهر، بدون بطاقة.
  • عمليات الفحص السلبي ضد أي URL — لا حاجة للتحقق من المجال.
  • تم ضبطه على Cursor، Claude Code، Lovable، Bolt، v0، Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Lovable security checklist: 25 items before launch · FixVibe