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 का मार्केटप्लेस इंटीग्रेशन और वीट बिल्ड क्लाइंट बंडल में एनवी वर्र्स को लीक कर सकता है।

  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 के 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. 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 से मान्य होता है। API हैंडलर में getSession() खोजें और इसे बदलें।
  2. PRE — Check Lovable's generated auth handlers for token expiry. मैजिक-लिंक टोकन को सर्वर-प्रवर्तित समाप्ति की आवश्यकता है। डिफ़ॉल्ट 1 घंटा है - जब तक आवश्यक न हो ओवरराइड न करें।
  3. PRE — Audit the sign-in redirect guard. next क्वेरी पैरामीटर / से शुरू होना चाहिए, कभी भी // से नहीं। यदि गायब है, तो गार्ड को मैन्युअल रूप से जोड़ें।
  4. POST — Test logout destroys the session. साइन इन करें, साइन आउट करें, कुकीज़ का निरीक्षण करें (DevTools → एप्लिकेशन → कुकीज़)। सत्र कुकी साफ़ होनी चाहिए.

HTTP हेडर और CSP (3 आइटम)

Lovable का वाइट स्कैफोल्ड डिफ़ॉल्ट रूप से CSP नहीं जोड़ता है। स्टेटिक होस्ट को स्पष्ट हेडर कॉन्फ़िगरेशन की आवश्यकता होती है।

  1. PRE — Add security headers via your host's config. Vercel: vercel.json headers सरणी। Netlify: _headers फ़ाइल। CSP, HSTS, एक्स-फ़्रेम-विकल्प, एक्स-सामग्री-प्रकार-विकल्प शामिल करें।
  2. PRE — CSP must not have 'unsafe-inline' in script-src. नॉनसेज़ या हैश का उपयोग करें। Lovable का वाइट बिल्ड सख्त 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 कुंजियाँ साझा न करें।
  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 नॉन ताज़ा है और हेडर मौजूद हैं।
  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_* वर्र्स को उजागर करता है। Vite में अलग API सीमा के बिना कोई सर्वर-केवल env अवधारणा नहीं है। 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 पेज सभी हेडर को अलग-अलग तरीके से संभालते हैं। यदि आप होस्ट बदलते हैं, तो दोबारा जांचें कि आपका हेडर कॉन्फिगरेशन लागू है - यदि हेडर समर्थित नहीं है तो प्लेटफ़ॉर्म आपको कोई त्रुटि नहीं दे सकता है।

अगले चरण

51 क्रॉस-टूल आइटम के लिए general vibe coding security checklist की समीक्षा करें। फिर CSP, RLS, और प्रमाणीकरण पर गहरे पैटर्न के लिए step-by-step hardening देखें।

// 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, रेप्लिट के लिए ट्यून किया गया।
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
मुफ़्त स्कैन चलाएँ →

साइन-अप की ज़रूरत नहीं

Lovable security checklist: 25 items before launch · FixVibe