FixVibe

// docs / security guides / ai tooling analysis

AI कोडिंग टूल्स क्यों सुरक्षा खामियाँ छोड़ते हैं

Cursor, Claude Code, Lovable, Bolt, v0, और इसी तरह के AI कोडिंग टूल तेजी से शिप होते हैं और डेवलपर्स को बॉयलरप्लेट बिजीवर्क से मुक्त करते हैं। उनके पास सुरक्षा के चारों ओर संरचनात्मक ब्लाइंडस्पॉट भी हैं। यह किसी एक उपकरण की विफलता नहीं है - यह इस बात का उपोत्पाद है कि एलएलएम को कैसे प्रशिक्षित किया जाता है और उन्हें कैसे अनुकूलित किया जाता है। इन कमियों के मूल कारणों को समझना उन्हें बंद करने की दिशा में पहला कदम है।

AI-जेनरेटेड कोड सुरक्षा में भिन्न क्यों है?

AI कोडिंग टूल द्वारा उत्पन्न सुरक्षा अंतराल के संरचनात्मक कारण होते हैं। वे यादृच्छिक निरीक्षण नहीं हैं; वे प्रशिक्षण और अनुकूलन की पूर्वानुमानित कलाकृतियाँ हैं।

  • Training data skews toward "make it work." ओपन-सोर्स रिपॉजिटरी और ट्यूटोरियल LLM प्रशिक्षण पर हावी हैं। माध्य OSS रेपो को किसी समस्या को हल करने के लिए लिखा गया था, न कि सुरक्षा को सख्त करने का एक उदाहरण बनने के लिए। एक LLM जंगल में कोड का वितरण सीखता है, सुरक्षित कोड का वितरण नहीं।
  • Autocomplete is sticky. जब आप एक कोड स्निपेट पेस्ट करते हैं जो service_role कुंजी का उपयोग करता है, तो यह अगली फ़ाइल के लिए टेम्पलेट बन जाता है। Cursor का स्वत: पूर्ण इसे क्लाइंट घटक में सुझाएगा जहां यह कभी नहीं था। उपकरण वही कर रहा है जिसके लिए इसे अनुकूलित किया गया है (गति) - लेकिन यह सुरक्षा सीमा से अवगत नहीं है।
  • No long-term context or incident memory. एक मानव डेवलपर जिसने गायब WHERE खंड के साथ एक उत्पादन डेटाबेस को जला दिया, वह सबक वर्षों तक आगे बढ़ता है। एक LLM में कोई एपिसोडिक मेमोरी नहीं है। प्रत्येक फ़ाइल एक नई शुरुआत है. टूल आपके पिछले RLS बायपास या आपकी टीम की घटना के पोस्टमॉर्टम से नहीं सीखता है।
  • Speed is the rewarded metric. डेवलपर्स इन उपकरणों को चुनते हैं क्योंकि वे तेजी से शिप होते हैं। विलंबता प्रतिक्रिया तत्काल और प्रत्यक्ष है। सुरक्षा प्रतिक्रिया अनुपस्थित या विलंबित है - जहाज के तीन सप्ताह बाद FixVibe स्कैन में एक भेद्यता पाई गई। LLM को वास्तविक समय में पुरस्कृत मीट्रिक मनुष्यों के लिए अनुकूलित किया गया था।
  • Implicit trust in platform defaults. जब Cursor एक Vercel ऐप बनाता है, तो यह मान लिया जाता है कि Vercel के डिफ़ॉल्ट सख्त हो गए हैं। कुछ हैं: ऑटो-HTTPS, हस्ताक्षरित कुकीज़, डीडीओएस सुरक्षा। अन्य नहीं हैं: डिफ़ॉल्ट रूप से कोई CSP नहीं, कोई HSTS नहीं, अनुमेय CORS। जेनरेट किया गया कोड प्लेटफ़ॉर्म मान्यताओं को प्राप्त करता है जो हमेशा उचित नहीं होती हैं।

गैप 1: क्लाइंट बंडलों में रहस्य

सेवा-भूमिका API कुंजियाँ, OAuth टोकन, और निजी कुंजियाँ ब्राउज़र पर भेजे गए जावास्क्रिप्ट बंडलों में समाप्त होती हैं। FixVibe इन्हें Secrets in JavaScript Bundles और Secrets in JavaScript Bundles निष्कर्षों के रूप में चिह्नित करें। कुंजियाँ स्रोत मानचित्रों, मिनीफ़ाइड कोड, या प्लेनटेक्स्ट JS में खोजने योग्य हैं।

Why it happens: Cursor एक Supabase स्निपेट चिपकाने से जो क्लाइंट को सेवा भूमिका के साथ प्रारंभ करता है इसका मतलब है कि कोड अब स्वतः पूर्ण में है। एक उत्पन्न रिएक्ट घटक "डेटाबेस से सभी आइटम प्राप्त करें" मांगता है और Cursor सेवा-क्लाइंट आयात का सुझाव देता है। सर्वर-ओनली और क्लाइंट-साइड कोड के बीच की सीमा LLM के लिए सार है।

Fix: पर्यावरण चर में स्टोर रहस्यों को केवल सार्वजनिक कुंजियों के लिए NEXT_PUBLIC_ ध्वजांकित किया गया है। सेवा कुंजियाँ, निजी API कुंजियाँ, और हस्ताक्षर रहस्य import 'server-only' के साथ src/lib/secrets.ts में रहने चाहिए। संवेदनशील सेवाओं को कॉल करने के लिए सर्वर क्रियाओं या API मार्गों का उपयोग करें, क्लाइंट घटकों का कभी नहीं।

अंतराल 2: पंक्ति-स्तरीय सुरक्षा का अभाव या अपूर्ण होना

Supabase तालिकाएँ RLS सक्षम किए बिना बनाई जाती हैं। Firebase फायरस्टोर नियम कभी लिखे नहीं जाते या अनुमेय परीक्षण मोड में छोड़ दिए जाते हैं। Anon उपयोगकर्ता प्रत्येक पंक्ति को पढ़ और लिख सकते हैं। FixVibe इसे Supabase Row-Level Security और Firebase Security Rules के रूप में चिह्नित करें।

Why it happens: RLS एक पोस्टग्रेस-विशिष्ट सुविधा है। रेल्स, डीजेंगो, लारवेल और एक्सप्रेस पर प्रशिक्षित एलएलएम एप्लिकेशन-लेयर ऑथ चेक को मानक के रूप में देखते हैं। RLS को Supabase पर सक्षम करने के लिए स्पष्ट ALTER TABLE कथनों और नीति परिभाषाओं की आवश्यकता होती है - प्रशिक्षण डेटा में पैटर्न कम आम हैं।

Fix: For Supabase, enable RLS with ALTER TABLE public.table_name ENABLE ROW LEVEL SECURITY; on every table and author policies that scope rows to the authenticated user or organization. For Firebase, never leave rules as default test mode; write explicit rules scoped to the authenticated user.

अंतराल 3: प्रामाणिक सीमा संबंधी भ्रम

सत्रों को getSession() (जो एक असत्यापित कुकी पढ़ता है) का उपयोग करके क्लाइंट-साइड मान्य किया जाता है। जादुई लिंक की कोई समाप्ति तिथि नहीं होती. JWTs aud और exp चेक छोड़ें। पासवर्ड रीसेट प्रतिवर्ती हैं. FixVibe इन्हें Auth Flow Defects निष्कर्षों के रूप में चिह्नित करें।

Why it happens: Supabase ऑथ, क्लर्क और समान सेवाएँ सत्र स्थिति को संभालती हैं, लेकिन उनके APIs में सुरक्षित और असुरक्षित मोड हैं। getSession() सुविधाजनक है लेकिन असत्यापित है। LLM प्रशिक्षण डेटा में सुरक्षित सुविधा की तुलना में API सुविधा को अधिक बार देखता है। सर्वर-साइड टोकन सत्यापन सारगर्भित है और इसके लिए स्पष्ट HTTP हेडर या मिडलवेयर इनवोकेशन की आवश्यकता होती है।

Fix: हमेशा supabase.auth.getUser() सर्वर-साइड का उपयोग करें। संरक्षित मार्गों पर कभी भी getSession() पर भरोसा न करें। प्रत्येक अनुरोध पर JWTs को मान्य करें, exp, aud, और हस्ताक्षर की जाँच करें। एक्सेस टोकन के लिए टोकन समाप्ति को 1 घंटे पर सेट करें और लंबे सत्रों के लिए ताज़ा टोकन का उपयोग करें।

गैप 4: HTTP सुरक्षा हेडर गुम

नहीं Content-Security-Policy, नहीं X-Frame-Options, नहीं Strict-Transport-Security, नहीं X-Content-Type-Options। FixVibe इसे HTTP Security Headers निष्कर्षों के रूप में चिह्नित करें।

Why it happens: सुरक्षा शीर्षलेख परिनियोजन-प्लेटफ़ॉर्म-विशिष्ट हैं। Cursor Next.js के लिए कोड उत्पन्न करता है; CSP सेटिंग के लिए next.config.js ट्वीक, मिडलवेयर या vercel.json ओवरराइड की आवश्यकता होती है। ये डिफ़ॉल्ट प्रोजेक्ट मचान में नहीं हैं। "हेडर DevOps के लिए हैं" का मानसिक मॉडल अभी भी आम है।

Fix: CSP को next.config.js या मिडलवेयर में बिना समर्थन के सेट करें: Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-...'; ...। HSTS: Strict-Transport-Security: max-age=31536000; includeSubDomains जोड़ें। स्थिर होस्ट के लिए Vercel के vercel.json हेडर या मिडलवेयर का उपयोग करें।

अंतराल 5: तृतीय-पक्ष एकीकरण गलत कॉन्फ़िगरेशन

Stripe कुंजियाँ, सेंट्री टोकन, एंथ्रोपिक API कुंजियाँ हार्डकोडेड हैं या रिपोज़ के लिए प्रतिबद्ध हैं। एनालिटिक्स की उत्पत्ति अति-अनुमोदनात्मक है। एनपीएम निर्भरताएँ पुरानी हो चुकी हैं। FixVibe स्कैन इन्हें Technology Fingerprinting और हमारे रहस्य जांचकर्ताओं के अंतर्गत निष्कर्षों के रूप में चिह्नित करता है।

Why it happens: एकीकरण दस्तावेज़ीकरण और ट्यूटोरियल से चिपकाए गए हैं। LLM किसी भी हार्डकोडेड मान सहित पैटर्न की प्रतिलिपि बनाता है। Env-var अनुशासन के लिए CI/CD में स्पष्ट अनुशासन की आवश्यकता होती है - जिसे LLM लागू नहीं कर सकता।

Fix: प्रत्येक तृतीय-पक्ष क्रेडेंशियल के लिए पर्यावरण चर का उपयोग करें। अपने परिनियोजन प्लेटफ़ॉर्म (Vercel, Netlify, Heroku, या वॉल्ट) में रहस्य संग्रहीत करें। npm audit मासिक के साथ एनपीएम निर्भरता का ऑडिट करें। सुरक्षा अद्यतन उपलब्ध होने पर स्वचालित पीआर के लिए डिपेंडाबॉट या रेनोवेट का उपयोग करें।

निवारण पैटर्न

इन अंतरालों को बंद करने के लिए नए सिरे से पुनर्निर्माण की आवश्यकता नहीं है। पैटर्न सुसंगत है:

  1. Audit: अपने लाइव ऐप के विरुद्ध FixVibe चलाएँ। रेपो स्कैन के लिए, FixVibe GitHub ऐप सक्षम करें। निष्कर्ष एकत्रित करें - रहस्य, RLS, प्रमाणीकरण, शीर्षलेख, तृतीय-पक्ष।
  2. Harden: Fix the high-confidence findings. Enable RLS and add owner-scoped policies. Move secrets to env vars. Set CSP and HSTS in middleware. Use server-side auth validation. Use the coding-agent prompt only where code/config changes apply, and follow operator steps for DNS or provider-owned fixes.
  3. Monitor: सत्यापित डोमेन पर दैनिक निष्क्रिय स्कैन या साप्ताहिक सक्रिय स्कैन शेड्यूल करें। स्लैक पर वेबहुक सेट करें। प्रत्येक महत्वपूर्ण खोज को जहाज के कुछ ही मिनटों के भीतर अलर्ट ट्रिगर करना चाहिए।
  4. प्रतिक्रिया दें: जब कोई निष्कर्ष सामने आए, तो फिक्स के स्वामी से मेल खाने वाली FixVibe सुधार कार्रवाई की प्रतिलिपि बनाएं: कोड/कॉन्फ़िगरेशन कार्य के लिए कोडिंग-एजेंट प्रॉम्प्ट, या DNS, प्रदाता कंसोल, गुप्त रोटेशन और मैन्युअल समीक्षा के लिए ऑपरेटर चरण। पुष्टि के लिए फिर से स्कैन करें।

मैदान किधर जा रहा है

इन अंतरालों को ठीक करना आज टीमों के लिए काम है। अगले 2-3 वर्षों में, सीमा आगे बढ़ रही है: फ्रेमवर्क और टूल्स में बेहतर डिफ़ॉल्ट (Next.js मिडलवेयर ऑटो-CSP, Supabase RLS डिफ़ॉल्ट के रूप में), IDE-समय सुरक्षा प्रतिक्रिया (Cursor सुझाव जो चेतावनी देते हैं जब आप क्लाइंट घटक में एक सेवा कुंजी पेस्ट करने वाले होते हैं), और MCP-संचालित ऑटोफ़िक्स (आपके कोडिंग एजेंट के पास FixVibe निष्कर्षों तक पहुंच होती है और उन्हें स्वायत्त रूप से ठीक कर सकता है)। FixVibe का सार्वजनिक changelog ट्रैक जो अंतराल पहले बंद हो रहे हैं।

अगले चरण

लॉन्च से पहले go/no-go चेकलिस्ट के लिए, Pre-launch SaaS security checklist देखें। कोड स्निपेट और वास्तविक विफलता पैटर्न के साथ चरण-दर-चरण सख्त प्रक्रिया के लिए, How to secure an app built with AI coding tools पढ़ें।

// 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.
मुफ़्त स्कैन चलाएँ →

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

AI कोडिंग टूल्स क्यों सुरक्षा खामियाँ छोड़ते हैं · FixVibe