FixVibe

// docs / security guides / ai-code scanner

AI-जनरेटेड कोड सुरक्षा स्कैनिंग: vibe-coded ऐप्स के लिए DAST

Cursor, Claude Code, Lovable, Bolt, v0, रेप्लिट, और Windsurf के साथ निर्मित ऐप्स वेब सॉफ़्टवेयर की किसी भी पिछली पीढ़ी की तुलना में तेज़ी से शिप होते हैं - और वे सुरक्षा अंतराल के पूर्वानुमानित सेट के साथ शिप होते हैं। यह पृष्ठ बताता है कि क्यों AI- जेनरेट किए गए ऐप्स को पारंपरिक पेंटेस्ट टूल की तुलना में अलग स्कैनिंग की आवश्यकता होती है, जो भेद्यता वर्ग अधिक प्रतिनिधित्व करते हैं, DAST SAST से कैसे भिन्न होता है जब कोडबेस आधा-मशीन-जनरेट होता है, और इस वर्कलोड के लिए बनाए गए स्कैनर में क्या देखना है।

AI- जेनरेटेड कोड को अलग सुरक्षा स्कैनिंग की आवश्यकता क्यों है

AI कोडिंग टूल को बड़े पैमाने पर ओपन-सोर्स रिपॉजिटरी पर प्रशिक्षित किया जाता है। वह प्रशिक्षण डेटा make it secure से अधिक make it work की ओर झुकता है। कुछ संरचनात्मक पैटर्न उससे अनुसरण करते हैं:

  • Autocomplete bias. निकटतम मिलान आयात जीतता है। एक फ़ाइल में service_role कुंजी का उपयोग करने वाले Supabase स्निपेट को चिपकाने से वह कुंजी अगले में स्वत: पूर्ण सुझाव बन जाती है - यहां तक ​​कि क्लाइंट-साइड रिएक्ट घटकों में भी जहां यह कभी नहीं था।
  • No long-term context. एक LLM को आपके पिछले RLS बाईपास या आपकी टीम की घटना के पोस्टमॉर्टम की कोई याद नहीं है। प्रत्येक जेनरेट की गई फ़ाइल ताज़ा होती है, जिसमें अक्सर रक्षात्मक पैटर्न गायब होते हैं जिन्हें मनुष्य फ़ाइलों में ले जाते हैं।
  • Speed as the rewarded metric. उपयोगकर्ता गति की प्रशंसा करते हैं; LLM प्रशिक्षण इसे पुष्ट करता है। विलंबता फीडबैक सिग्नल पर "सबसे तेज़ Next.js ऑथ उत्पन्न करें" बीट्स "सबसे सुरक्षित Next.js ऑथ उत्पन्न करें"।
  • Training data gaps. पुराने कोडबेस प्रशिक्षण डेटा पर हावी हैं और आधुनिक सुरक्षा डिफ़ॉल्ट (सख्त CSP, SameSite=Lax, HSTS, RLS) से पहले के हैं। जेनरेट किया गया कोड उन पैटर्न को प्रतिध्वनित करता है जो 2019 में सामान्य थे लेकिन आज असुरक्षित हैं।
  • Implicit platform trust. जब Cursor एक Vercel ऐप बनाता है तो यह मान लेता है कि Vercel के डिफ़ॉल्ट सुरक्षित हैं। कुछ (auto-HTTPS, हस्ताक्षरित कुकीज़) हैं। कई (डिफ़ॉल्ट रूप से कोई CSP, अनुमेय CORS, डिफ़ॉल्ट Next.js डिबग रूट नहीं हैं)।

वाइब-कोडित ऐप्स में दस भेद्यता वर्गों का अधिक प्रतिनिधित्व किया गया है

AI- जेनरेट किए गए ऐप्स के हजारों स्कैन में, समान खोज कक्षाएं असमान रूप से दिखाई देती हैं:

  1. Exposed Supabase service-role keys. क्लाइंट बंडल के लिए प्रतिबद्ध service_role JWT (eyJ शुरू होता है) प्रोजेक्ट पर प्रत्येक RLS नीति को बायपास कर देता है। Cursor इसे सीमा के गलत तरफ स्वत: पूर्ण करता है; प्रमुख जहाज /_next/static/... में हैं।
  2. Missing Row-Level Security (RLS). मॉडल CREATE TABLE public.items देखता है और RLS को सक्षम किए बिना आगे बढ़ता है। अनाम उपयोगकर्ता सार्वजनिक एनोन कुंजी के माध्यम से किसी भी पंक्ति को पढ़ या लिख ​​सकते हैं। baas.supabase-rls देखें.
  3. Open Firebase / Firestore rules. जेनरेट की गई नियम फ़ाइलें अक्सर allow read, write: if true; पढ़ती हैं या नियम फ़ाइल को पूरी तरह छोड़ देती हैं। डिफ़ॉल्ट परीक्षण-मोड नियम 30 दिनों के बाद समाप्त हो जाते हैं और डेटाबेस को लॉक कर देते हैं, लेकिन केवल तभी जब डेवलपर ने ध्यान दिया हो।
  4. Hardcoded API keys in bundles. Stripe लाइव कुंजियाँ, एंथ्रोपिक sk-ant-*, ओपनएआई sk-*, गूगल AIza*, और AWS AKIA* कुंजियाँ JS पेलोड में इनलाइन हो जाती हैं जब env-var अनुशासन समाप्त हो जाता है। secrets.browser-storage उन्हें रेंडर-पेज स्तर पर ध्वजांकित करता है।
  5. Missing Content Security Policy. नहीं Content-Security-Policy प्रतिक्रिया शीर्षलेख का अर्थ है कि प्रत्येक इनलाइन-स्क्रिप्ट XSS पूर्ण खाता अधिग्रहण से एक क्लिक दूर है। CSP सार है; कोडजेन नियमित रूप से इसे छोड़ देता है। headers.security-headers परिनियोजन-प्लेटफ़ॉर्म-विशिष्ट फ़िक्स मार्गदर्शन के साथ अंतर की रिपोर्ट करता है।
  6. Next.js middleware misplacement. src/ लेआउट के साथ, Next.js केवल src/middleware.ts को चुनता है - रूट-स्तर middleware.ts को चुपचाप अनदेखा कर दिया जाता है। प्रमाणीकरण अभी भी काम करता प्रतीत होता है क्योंकि पृष्ठ requireAuth() पर कॉल करते हैं, लेकिन हेडर, CSP, और दर सीमाएँ लागू नहीं होती हैं।
  7. IDOR via unsigned IDs. जेनरेटेड GET /api/items/[id] हैंडलर पथ पैरामीटर पर भरोसा करते हैं और कभी भी स्वामित्व को सत्यापित नहीं करते हैं। पूर्णांक या UUID स्पेस पर चलने से प्रत्येक किरायेदार का डेटा उजागर हो जाता है।
  8. Broken auth flows. बिना expires_at वाले मैजिक-लिंक टोकन; JWT सत्यापन जो aud और exp को छोड़ देता है; सर्वर-साइड getUser() के बजाय क्लाइंट-साइड getSession() कॉल (जो एक असत्यापित कुकी पढ़ता है)।
  9. Debug endpoints in production. उत्पन्न /api/debug, /api/health, /api/__nextjs_original-stack-frame, या /.next/trace मार्ग आंतरिक रिसाव। discovery.platform-vercel SPA फ़ॉलबैक पर गलत सकारात्मकता से बचने के लिए सामग्री सत्यापन के साथ उनकी जांच करता है।
  10. Plaintext sensitive fields. पासवर्ड, API कुंजियाँ, और PII को पोस्टग्रेज़ में सादे पाठ के रूप में संग्रहीत किया गया क्योंकि माइग्रेशन pgcrypto या किसी बाहरी वॉल्ट तक नहीं पहुंचा।

DAST बनाम SAST: AI- जेनरेटेड कोड के लिए दोनों क्यों मायने रखते हैं

स्थैतिक विश्लेषण (SAST) और गतिशील विश्लेषण (DAST) पूरक हैं, विकल्प नहीं। हस्तलिखित कोड की तुलना में AI-जनरेटेड कोड के लिए विभाजन अधिक मायने रखता है।

SAST डिस्क पर स्रोत कोड पढ़ता है। यह बिल्ड रन से पहले स्रोत फ़ाइलों, खतरनाक फ़ंक्शन कॉल और जोखिम भरे पैटर्न में रहस्यों को पकड़ लेता है। यह रनटाइम कॉन्फ़िगरेशन, परिनियोजित पर्यावरण चर या किसी बंडलर ने आपके कोड को कैसे रूपांतरित किया, यह नहीं देख सकता।

DAST एक उपयोगकर्ता की तरह तैनात एप्लिकेशन को हिट करता है। यह भेजी गई प्रतिक्रियाओं को देखता है, उत्पादन बंडल के विरुद्ध चलता है, और रेपो और तैनाती के बीच कॉन्फ़िगरेशन बहाव को पकड़ता है। यह ट्रांसपिल्ड जावास्क्रिप्ट में हार्डकोडेड कुंजी ढूंढता है जिसे SAST ने कभी नहीं देखा क्योंकि वे बिल्ड समय पर process.env असाइनमेंट के माध्यम से दर्ज किए गए थे।

For AI-generated code, DAST is essential क्योंकि जो जहाज मॉडल ने लिखा है उससे अलग है। बंडलिंग, वृक्ष-हिलाना, वाष्पोत्सर्जन, और पर्यावरण-परिवर्तनीय इनलाइनिंग सभी नई सतहों का निर्माण करते हैं। SAST स्रोत पर बंडल-एम्बेडेड रहस्य पूरी तरह से छूट सकते हैं। DAST दोनों परतों को पकड़ता है। एक परिपक्व पाइपलाइन तैनात पूर्वावलोकन के विरुद्ध SAST में CI और DAST पर चलती है - यह FixVibe पैटर्न है।

AI-कोड स्कैनर में क्या देखना है

अधिकांश सामान्य-उद्देश्य वाले DAST स्कैनर (बर्प सुइट, OWASP ZAP, नेसस) मोनोलिथिक ऐप्स और पारंपरिक प्रमाणीकरण प्रवाह के लिए डिज़ाइन किए गए थे। Vercel + Supabase + Stripe AI- जेनरेटेड ऐप को स्कैन करने की आवश्यकता है:

  • BaaS coverage. Supabase RLS, Firebase / फायरस्टोर नियम, क्लर्क कॉन्फिगरेशन, AWS एम्प्लिफाई, और JWT उन सेवाओं द्वारा उत्सर्जित आकृतियों के विरुद्ध वास्तविक जांच। सामान्य OWASP नियम नहीं जानते कि क्या ध्वजांकित किया जाए।
  • JS bundle inspection. API-कुंजी प्रारूपों, हस्ताक्षरित-टोकन, और प्रदाता-विशिष्ट पैटर्न (Stripe sk_live_, एंथ्रोपिक sk-ant-, Supabase JWTs eyJ से शुरू होने वाले) के लिए ट्यून किया गया रेगेक्स। जेनेरिक एन्ट्रापी अनुमान बहुत अधिक गलत सकारात्मकताएँ प्रस्तुत करते हैं।
  • Passive + active split. निष्क्रिय जांच (हेडर, कुकीज़, रहस्य, BaaS कॉन्फ़िगरेशन, DNS) किसी भी URL के विरुद्ध सुरक्षित रूप से चलते हैं। सक्रिय जांच (SQLi, XSS, SSTI, IDOR वॉकिंग) को प्राधिकरण सीमा की आवश्यकता होती है क्योंकि वे आक्रमण-शैली पेलोड फायर करते हैं।
  • Framework awareness. Next.js ऐप राउटर बनाम पेज राउटर को पहचानना, Vite SPA पुनः लिखना, Vercel परिनियोजन-सुरक्षा, Cloudflare पेज रूटिंग। एक स्कैनर जो Vite SPA फ़ॉलबैक को वास्तविक /_next/build-manifest.json से अलग नहीं करता है, शोर उत्पन्न करता है।
  • Rate-limit safety. प्रति स्कैन सीमित अनुरोध बजट, WAF-भ्रमित झूठी सकारात्मकताओं से बचने के लिए बेसलाइन-प्रतिक्रिया तुलना, ब्लैंकेट-403 तैनाती का पता लगाने के लिए यादृच्छिक पथ-जांच बेसलाइन।
  • Authorization gating for intrusive payloads. किसी ऐसे डोमेन पर SQLi या OS- कमांड पेलोड भेजना अधिकांश न्यायालयों में अवैध है। किसी लक्ष्य के विरुद्ध सक्रिय मोड चलाने से पहले एक वास्तविक स्कैनर को DNS या HTTP-फ़ाइल स्वामित्व सत्यापन की आवश्यकता होती है।

FixVibe का दृष्टिकोण: साक्ष्य-आधारित स्कैनिंग, कम गलत-सकारात्मक भार

FixVibe is a DAST built specifically for AI-generated web apps. The passive phase runs 200+ checks on the rendered page (headers, CSP, cookies, leaked secrets, BaaS misconfiguration, tech fingerprinting, DNS, attack-surface discovery). The active phase adds payload-firing probes (SQLi, XSS, SSTI, CORS, redirects, IDOR walking, CSRF, account enumeration, blind-SSRF) gated behind verified-domain ownership. Repo scans add code-phase checks against connected GitHub repositories. Every finding includes evidence, a CWE link, a remediation recipe, and either a coding-agent prompt or operator steps depending on who can actually apply the fix. The scan engine is open in the changelog — every new check, accuracy improvement, and false-positive fix is logged publicly.

FixVibe बनाम बर्प सूट, ZAP, और नेसस: जब प्रत्येक उपकरण जीतता है

कोई भी एकल उपकरण प्रत्येक वर्कफ़्लो को कवर नहीं करता है। जहां FixVibe फिट बैठता है, उसकी ईमानदार फ़्रेमिंग:

Aspectबर्प सुइट / OWASP ZAPनेसस/क्वालिसFixVibe
Setupमैनुअल प्रॉक्सी + ब्राउज़र कॉन्फ़िगरेशननेटवर्क एजेंट स्थापित करेंURL चिपकाएँ, साइन इन करें
पहली बार खोजने का समयमिनटों से लेकर घंटों तकघंटों से दिन तकसेकंड से मिनट तक
BaaS कॉन्फिग जांचकोई प्रथम श्रेणी समर्थन नहींNoSupabase RLS, Firebase नियम, क्लर्क, JWT आकार
JS बंडल गुप्त पहचानजेनेरिक एन्ट्रापी रेगेक्सNoProvider-विशिष्ट पैटर्न + ब्राउज़र संग्रहण स्कैन
AI-कोडित रूपरेखा जागरूकताUnawareUnawareNext.js, वाइट, Vercel, Cloudflare पेज, Supabase
सक्रिय-स्कैन प्राधिकरण गेटिंगमैनुअल स्कोप अनुशासनमैनुअल स्कोप अनुशासनआवश्यक: DNS या HTTP-फ़ाइल डोमेन सत्यापन
प्रथम श्रेणी API + MCPAPI मौजूद हैAPI मौजूद हैREST + MCP क्लाउड के लिए सर्वर / Cursor / Continue

जहां उपकरण एक दूसरे के पूरक हैं

  • Start with FixVibe passive किसी भी परिनियोजन पूर्वावलोकन के विरुद्ध निःशुल्क 30-सेकंड की बेसलाइन के रूप में। यदि कुछ भी सामने नहीं आता है, तो आपके पास एक तेज़ आत्मविश्वास संकेत है।
  • सत्यापित डोमेन पर Move to FixVibe active जब आप अपने स्वयं के बुनियादी ढांचे के विरुद्ध पूर्ण सक्रिय कवरेज (SQLi/SSTI/IDOR/etc.) चाहते हैं।
  • CI में स्रोत कोड पर Layer SAST (सेमग्रेप, कोडक्यूएल, स्निक)। SAST वह पकड़ता है जिसे रनटाइम नहीं देख सकता - कोड पथों में जोखिम भरा पैटर्न जो कभी भी तैनाती तक नहीं पहुंचता है।
  • Reach for Burp Suite जब आपको कस्टम आक्रमण श्रृंखलाओं (विशिष्ट प्रमाणीकरण बाईपास, जटिल IDOR परिदृश्य, व्यवसाय-तर्क संबंधी खामियां) की आवश्यकता होती है। बर्प उपलब्ध सबसे गहरा मैनुअल कार्यक्षेत्र है; FixVibe सबसे तेज़ स्वचालित आधार रेखा है।

अगले चरण

44-आइटम प्री-शिप ऑडिट के लिए Vibe coding security checklist के साथ Continue, या कोड स्निपेट के साथ चरण-दर-चरण सख्त करने के लिए How to secure an app built with AI coding tools पर जाएं।

// scan your app

पढ़ना बंद करें। अपने ऐप की खामियाँ ढूँढना शुरू करें।

एक URL में छोड़ें - FixVibe इस गाइड से प्रत्येक निष्क्रिय जांच और 200+ अन्य को एक मिनट से कम समय में चलाता है। Free, कोई इंस्टाल नहीं, कोई कार्ड नहीं।

  • Free टियर - 3 स्कैन/माह, कोई कार्ड नहीं।
  • किसी भी URL के विरुद्ध निष्क्रिय स्कैन - किसी डोमेन सत्यापन की आवश्यकता नहीं है।
  • Cursor, Claude Code, Lovable, Bolt, v0, रेप्लिट के लिए ट्यून किया गया।
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
मुफ़्त स्कैन चलाएँ

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

AI-जनरेटेड कोड सुरक्षा स्कैनिंग: vibe-coded ऐप्स के लिए DAST — Docs · FixVibe