1<!DOCTYPE html><html lang="en" class="inter_ed26c892-module__0Hd1FG__variable space_grotesk_361135fd-module__Vna8kq__variable jetbrains_mono_b90ee254-module__ZcKZKW__variable h-full antialiased dark bg-black"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i3hrjo2hnx_l.css" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/16qne651ky9y~.css" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi" href="/_next/static/chunks/0_9rj3gtku9.b.js"/>
1<script src="/_next/static/chunks/0mu1qslb0zv9i.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/03suqv13wr-t2.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/03jnej.uud_v_.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/turbopack-13l8v633ur2fr.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/01xlw8hd842-c.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/0d3shmwh5_nmn.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/0zdxqxhdbwu6e.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/128ijfj88em0b.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/04m28jiwmtgfe.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/0~wp-0lntc6lt.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/0ufbysi4sus3i.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<script src="/_next/static/chunks/0qco2lbz6e8ii.js" async="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1<meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://api.sekrd.com"/><link rel="dns-prefetch" href="https://api.sekrd.com"/><link rel="preconnect" href="https://cdn.paddle.com"/><meta name="google-site-verification" content="bhDdgsbc9g1rIVUhQXtdMaKVEOELUBQCw2CzNTlQTL8"/><title>Blog | Sekrd</title><meta name="description" content="Security research, case studies, and insights on securing AI-built applications. Supabase RLS audits, Firebase rules analysis, and vibe coding security."/><meta name="author" content="Sekrd"/><meta name="keywords" content="security audit,supabase rls,firebase rules,vibe coding security,AI app security,lovable security,claude code security,cursor security,api security scanner,sekrd,mcp server security,security scanner,web app security,exposed api keys,rls policy audit,ai code security,vulnerability scanner,security badge,deep scan,fix prompts"/><meta name="creator" content="Sekrd"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><link rel="canonical" href="https://sekrd.com/blog"/><meta property="og:title" content="Sekrd â Deep security audit for AI-built apps"/><meta property="og:description" content="We find what your AI forgot to secure. Deep Supabase RLS, Firebase rules, auth flow auditing."/><meta property="og:url" content="https://sekrd.com"/><meta property="og:site_name" content="Sekrd"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://sekrd.com/opengraph-image"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Sekrd â Deep security audit for AI-built apps"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Sekrd â Deep security audit for AI-built apps"/><meta name="twitter:description" content="We find what your AI forgot to secure."/><meta name="twitter:image" content="https://sekrd.com/opengraph-image"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.svg?icon.0ra1442mwmect.svg" sizes="any" type="image/svg+xml"/>
1<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi" type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Sekrd","description":"Deep security audit for AI-built apps. Find Supabase RLS, Firebase rules, and auth vulnerabilities.","url":"https://sekrd.com","applicationCategory":"SecurityApplication","operatingSystem":"Web","offers":[{"@type":"Offer","price":"0","priceCurrency":"USD","description":"Free tier â URL scans with monthly quota"},{"@type":"Offer","price":"39","priceCurrency":"USD","description":"Pre-Launch Audit â one-time deep audit + compliance review + PDF report"},{"@type":"Offer","price":"29","priceCurrency":"USD","description":"Continuous Pro â monthly monitoring with drift alerts"}]}</script>
1<script src="/_next/static/chunks/03~yq9q893hmn.js" noModule="" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi"></script>
1</head><body class="min-h-full flex flex-col text-[#F5F5F7] font-[var(--font-inter)]"><div hidden=""><!--$--><!--/$--></div><!--$?--><template id="B:0"></template><div class="min-h-screen flex items-center justify-center"><div class="flex flex-col items-center gap-4"><div class="w-8 h-8 border-2 border-[#30D158] border-t-transparent rounded-full animate-spin"></div><p class="text-[#86868B] text-sm">Loading...</p></div></div><!--/$-->
1<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">requestAnimationFrame(function(){$RT=performance.now()});</script>
1<script src="/_next/static/chunks/0_9rj3gtku9.b.js" nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi" id="_R_" async=""></script>
1<div hidden id="S:0"><div class="min-h-screen"><nav class="sticky top-0 z-50 backdrop-blur-xl bg-black/80 border-b border-white/5"><div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between"><a class="flex items-center gap-2.5 group" href="/"><svg width="28" height="28" viewBox="0 0 80 80" fill="none" role="img" aria-label="Sekrd" xmlns="http://www.w3.org/2000/svg"><defs><mask id="_R_15anpfdtb_"><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="white"></path><text x="40" y="51" text-anchor="middle" fill="black" font-size="44" font-weight="800" font-family="SF Pro Display,-apple-system,Helvetica Neue,Helvetica,Arial,sans-serif">S</text></mask></defs><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="#1C1C1E" stroke="#1C1C1E" stroke-width="4" stroke-linejoin="round"></path><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="#30D158" mask="url(#_R_15anpfdtb_)"></path><circle cx="57.5" cy="14" r="10" fill="#1C1C1E"></circle><circle cx="57.5" cy="14" r="5.5" fill="#30D158"><animate attributeName="r" values="5.5;3.5;5.5" dur="2.5s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.2 1;0.4 0 0.2 1"></animate><animate attributeName="opacity" values="1;0.45;1" dur="2.5s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.2 1;0.4 0 0.2 1"></animate></circle></svg><span class="font-[var(--font-heading)] text-lg font-bold tracking-tight group-hover:text-[#30D158] transition-colors">sekrd</span></a><div class="hidden md:flex items-center gap-6"><a class="text-sm text-[#86868B] hover:text-white transition-colors py-2 px-1" href="/pricing">Pricing</a><a class="text-sm text-[#86868B] hover:text-white transition-colors py-2 px-1" href="/docs">Docs</a><a class="text-sm text-[#86868B] hover:text-white transition-colors py-2 px-1" href="/blog">Blog</a><a class="text-sm text-[#86868B] hover:text-white transition-colors py-2 px-1" href="/about">About</a></div><div class="hidden md:flex items-center gap-3"><a class="text-sm text-[#86868B] hover:text-white transition-colors px-3 py-2" href="/auth/signin">Sign In</a><a class="px-4 py-2 bg-[#30D158] text-black text-sm font-semibold rounded-lg hover:bg-[#28B84C] transition-all hover:shadow-[0_0_20px_rgba(48,209,88,0.3)]" href="/scan">Scan Now</a></div><button type="button" class="md:hidden p-2.5 -mr-2.5" aria-label="Open menu" aria-expanded="false"><svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></nav><main class="max-w-4xl mx-auto px-6 py-16"><h1 class="font-[var(--font-heading)] text-4xl font-bold mb-4">Blog</h1><p class="text-[#86868B] text-lg mb-12">Security research, case studies, and guides for AI-built apps.</p><div class="space-y-6"><a href="/blog/100-vibe-apps-one-scanner" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#30D158] bg-[#30D158]/10">Research</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">8 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">100 vibe apps, one scanner: what a random sweep of the AI-built web actually finds</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">AI coding tools ship faster than any IDE in history. Platform defaults haven't caught up. We scanned 100 random production apps from 12 AI-coding hosting platforms: 5% had critical live leaks (Stripe keys in the browser, full Supabase table exposure), 57% shipped with no Content-Security-Policy at all. The fix is continuous scanning in CI â the same pre-commit discipline that stops typos from reaching production.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/vibe-coded-apps-98-findings-late-april-2026" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10">Research</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">7 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">98 vibe-coded apps, 967 findings: the security posture is the platform, not the app</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">We ran ~100 scans across vibe-coded apps and indie deployments from two different c
1ohorts. 96% shipped, 4% got BLOCK, 21% bounced off their own WAF. Inside each cohort, scores clustered so tight it surprised us. The real risk doesn't come from the template â it comes from the 3â6% of apps where the developer reached past the template.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/vibe-coding-legacy-cms-audit-april-2026" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10">Research</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">8 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">50 sites, 444 findings: the 2026 state of shipping-fast security</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">April 2026. We scanned 50 production URLs â vibe-coded AI tools, small-business WordPress, auth-SaaS homepages. 41 scored, 9 bounced off modern WAF and we respected it. 88% SHIP, 12% BLOCK, median 76, 444 findings. Every site had findings. Here's what the shape of those findings says about how the web is being built right now, and why 'ship fast' can't keep ignoring the security layer.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/checks-url-scanners-miss" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#0A84FF] bg-[#0A84FF]/10">Deep Scan</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">5 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">5 security checks a URL-only scanner will never catch</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">A URL scan checks your front door. Deep scans check whether the windows are locked. Here are the five classes of findings that only show up when you plug in your Supabase, Firebase, or MCP credentials.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/using-true-not-safe" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#30D158] bg-[#30D158]/10">Supabase</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">4 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">Your Supabase RLS says "enabled." Here's why your database is still open.</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">A Row Level Security policy with USING(true) passes every dashboard check and leaks every row. We've seen it in production apps, in our own test projects, and in the Supabase docs themselves. Here's what it looks like and how to find it before someone else does.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/firebase-rules-audit" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF9F0A] bg-[#FF9F0A]/10">Firebase</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">4 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">"allow read, write: if true" â the Firestore rules gap nobody fixes in time</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">Firebase test-mode rules give you 30 days. A lot of apps get a year. We've scanned projects with wide-open Firestore, wide-open Storage, and surprisingly tight rules that just needed a matching deny-all fallback. Here's what the audit actually checks.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a><a href="/blog/web-security-audit-49-sites-2026" class="block"><article class="group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all"><div class="flex items-center gap-3 mb-3"><span class="px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10">Research</span><span class="text-xs text-[#86868B]">April 2026</span><span class="text-xs text-[#86868B]">8 min read</span></div><h2 class="font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors">We scanned 49 of the internet's biggest sites. Here's what we found.</h2><p class="text-sm text-[#86868B] leading-relaxed mb-4">GitHub, Google, Slack, Stripe, Notion, Vercel, and 43 others. 89% passed. 5 got BLOCK. Every single site had findings. The average score was 80/100. Full data and methodology inside.</p><span class="text-sm text-[#30D158] font-medium">Read more â</span></article></a></div></main><footer class="border-t border-white/5 bg-black"><div class="max-w-6xl mx-auto px-6 py-16">
1<div class="grid grid-cols-2 md:grid-cols-5 gap-8 mb-12"><div class="col-span-2 md:col-span-1"><div class="flex items-center gap-2 mb-4"><svg width="24" height="24" viewBox="0 0 80 80" fill="none" role="img" aria-label="Sekrd" xmlns="http://www.w3.org/2000/svg"><defs><mask id="_R_2lqnpfdtb_"><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="white"></path><text x="40" y="51" text-anchor="middle" fill="black" font-size="44" font-weight="800" font-family="SF Pro Display,-apple-system,Helvetica Neue,Helvetica,Arial,sans-serif">S</text></mask></defs><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="#1C1C1E" stroke="#1C1C1E" stroke-width="4" stroke-linejoin="round"></path><path d="M40 6L12 16v20c0 16 12 28 28 34 16-6 28-18 28-34V16L40 6z" fill="#30D158" mask="url(#_R_2lqnpfdtb_)"></path><circle cx="57.5" cy="14" r="10" fill="#1C1C1E"></circle><circle cx="57.5" cy="14" r="5.5" fill="#30D158"><animate attributeName="r" values="5.5;3.5;5.5" dur="2.5s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.2 1;0.4 0 0.2 1"></animate><animate attributeName="opacity" values="1;0.45;1" dur="2.5s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.2 1;0.4 0 0.2 1"></animate></circle></svg><span class="font-[var(--font-heading)] font-bold">sekrd</span></div><p class="text-sm text-[#86868B] leading-relaxed mb-3">Deep security audit for AI-built apps. Don't ship until you're sekrd.</p><p class="text-sm text-[#86868B]">Sekrd · Security + Compliance audit</p></div><div><h3 class="text-sm font-semibold mb-4 text-[#A1A1A6]">Product</h3><ul class="space-y-1"><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/scan">Free Scan</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/pricing">Pricing</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/docs">Documentation</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/blog">Blog</a></li><li><a href="https://github.com/marketplace/actions/sekrd-security-scan" class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" target="_blank" rel="noopener noreferrer">GitHub Action</a></li></ul></div><div><h3 class="text-sm font-semibold mb-4 text-[#A1A1A6]">Company</h3><ul class="space-y-1"><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/about">About</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/support">Support</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/terms">Terms of Service</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/privacy">Privacy Policy</a></li></ul></div><div><h3 class="text-sm font-semibold mb-4 text-[#A1A1A6]">Trust</h3><ul class="space-y-1"><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/trust">Trust center</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/security-policy">Security policy</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/docs/cwe-mapping">CWE mapping</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/docs/vulnerability-updates">Update cadence</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/status">Status</a></li><li><a class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" href="/changelog">Changelog</a></li></ul></div><div><h3 class="text-sm font-semibold mb-4 text-[#A1A1A6]">Connect</h3><ul class="space-y-1"><li><a href="https://github.com/sekrdcom" class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" target="_blank" rel="noopener noreferrer">GitHub</a></li><li><a href="https://t.me/sekrdbot" class="text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5" target="_blank" rel="noopener noreferrer">Telegram</a></li></ul></div></div><div class="pt-8 border-t border-white/5 flex flex-col sm:flex-row items-center justify-between gap-4"><p class="text-xs text-[#86868B]">© <!-- -->2026<!-- --> Sekrd. All rights reserved.</p><ul class="flex items-center gap-1">
1<li><a href="https://www.youtube.com/@sekrd" target="_blank" rel="noopener noreferrer" aria-label="YouTube" title="YouTube" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg></a></li><li><a href="https://www.linkedin.com/company/sekrd" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" title="LinkedIn" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.063 2.063 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a></li><li><a href="https://x.com/sekrdcom" target="_blank" rel="noopener noreferrer" aria-label="X" title="X" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z"></path></svg></a></li><li><a href="https://www.instagram.com/sekrdcom" target="_blank" rel="noopener noreferrer" aria-label="Instagram" title="Instagram" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"></path></svg></a></li><li><a href="https://www.tiktok.com/@sekrdcom" target="_blank" rel="noopener noreferrer" aria-label="TikTok" title="TikTok" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5.8 20.1a6.34 6.34 0 0 0 10.86-4.43V8.66a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.84-.09Z"></path></svg></a></li><li><a href="https://facebook.com/sekrdcom" target="_blank" rel="noopener noreferrer" aria-label="Facebook" title="Facebook" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"></path></svg></a></li><li><a href="https://www.threads.com/@sekrdcom" target="_blank" rel="noopener noreferrer" aria-label="Threads" title="Threads" class="inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="w-[18px] h-[18px]"><path d="M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.01
17c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.781 3.631 2.695 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.293a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z"></path></svg></a></li></ul><p class="text-xs text-[#86868B]">Don't ship until you're sekrd.</p></div></div></footer></div><!--$--><!--/$--></div>
1<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0}; 2$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">(self.__next_f=self.__next_f||[]).push([0])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"1:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LoadingBoundaryProvider\"]\n2:\"$Sreact.fragment\"\n4:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n6:I[3265,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\",\"/_next/static/chunks/0~wp-0lntc6lt.js\"],\"Navbar\"]\n15:I[63491,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\",\"/_next/static/chunks/0ufbysi4sus3i.js\"],\"default\"]\n18:I[45605,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\",\"/_next/static/chunks/0~wp-0lntc6lt.js\"],\"SekrdLogo\"]\n19:I[22016,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\",\"/_next/static/chunks/0~wp-0lntc6lt.js\"],\"\"]\n1c:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n1d:\"$Sreact.suspense\"\n20:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n22:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n29:I[53934,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\"],\"TrustedTypesInit\"]\n2a:I[79520,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\"],\"\"]\n2b:I[30824,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\"],\"Providers\"]\n2c:I[46417,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\"],\"ErrorBoundary\"]\n2d:I[58298,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\",\"/_next/static/chunks/0qco2lbz6e8ii.js\"],\"default\"]\n2e:I[40244,[\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"/_next/static/chunks/128ijfj88em0b.js\",\"/_next/static/chunks/04m28jiwmtgfe.js\"],\"CookieBanner\"]\n2f:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n:HL[\"/_next/static/chunks/0i3hrjo2hnx_l.css\",\"style\",{\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]\n:HL[\"/_next/static/chunks/16qne651ky9y~.css\",\"style\",{\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]\n:HL[\"/_next/static/media/051742360c26797e-s.p.0f97p8c3305p~.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/26f284dcc38c84c0-s.p.10hk62x1-0d9n.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/9c72aa0f40e4eef8-s.p.0m6w47a4e5dy9.w
2off2\",\"font\",{\"crossOrigin\":\"\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"font/woff2\"}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",20],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"div\",\"l\",{\"className\":\"min-h-screen flex items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-8 h-8 border-2 border-[#30D158] border-t-transparent rounded-full animate-spin\"}],[\"$\",\"p\",null,{\"className\":\"text-[#86868B] text-sm\",\"children\":\"Loading...\"}]]}]}],[],[]],\"children\":[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i3hrjo2hnx_l.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/16qne651ky9y~.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0zdxqxhdbwu6e.js\",\"async\":true,\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/128ijfj88em0b.js\",\"async\":true,\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/04m28jiwmtgfe.js\",\"async\":true,\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]],\"$L3\"]}]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen\",\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"main\",null,{\"className\":\"max-w-4xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"font-[var(--font-heading)] text-4xl font-bold mb-4\",\"children\":\"Blog\"}],[\"$\",\"p\",null,{\"className\":\"text-[#86868B] text-lg mb-12\",\"children\":\"Security research, case studies, and guides for AI-built apps.\"}],[\"$\",\"div\",null,{\"className\":\"space-y-6\",\"children\":[[\"$\",\"a\",\"100-vibe-apps-one-scanner\",{\"href\":\"/blog/100-vibe-apps-one-scanner\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#30D158] bg-[#30D158]/10\",\"children\":\"Research\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"8 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"100 vibe apps, one scanner: what a random sweep of the AI-built web actually finds\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"AI coding tools ship faster than any IDE in history. Platform defaults haven't caught up. We scanned 100 random production apps from 12 AI-coding hosting platforms: 5% had critical live leaks (Stripe keys in the browser, full Supabase table exposure), 57% shipped with no Content-Security-Policy at all. The fix is continuous scanning in CI â the same pre-commit discipline that stops typos from reaching production.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}],[\"$\",\"a\",\"vibe-coded-apps-98-findings-late-april-2026\",{\"href\":\"/blog/vibe-coded-apps-98-findings-late-april-2026\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10\",\"children\":\"Research\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],\"$L7\"]}],\"$L8\",\"$L9\",\"$La\"]}]}],\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\"]}]]}],\"$L10\"]}],[\"$L11\"],\"$L12\"]}],{}
2,null,false,null]},null,false,\"$@13\"]},null,false,null],\"$L14\",false]],\"m\":\"$undefined\",\"G\":[\"$15\",[\"$L16\",\"$L17\"]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"HKJ0MzHbI0PJ3pgo8jrqt\"}\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"7:[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"7 min read\"}]\n8:[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"98 vibe-coded apps, 967 findings: the security posture is the platform, not the app\"}]\n9:[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"We ran ~100 scans across vibe-coded apps and indie deployments from two different cohorts. 96% shipped, 4% got BLOCK, 21% bounced off their own WAF. Inside each cohort, scores clustered so tight it surprised us. The real risk doesn't come from the template â it comes from the 3â6% of apps where the developer reached past the template.\"}]\na:[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"b:[\"$\",\"a\",\"vibe-coding-legacy-cms-audit-april-2026\",{\"href\":\"/blog/vibe-coding-legacy-cms-audit-april-2026\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10\",\"children\":\"Research\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"8 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"50 sites, 444 findings: the 2026 state of shipping-fast security\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"April 2026. We scanned 50 production URLs â vibe-coded AI tools, small-business WordPress, auth-SaaS homepages. 41 scored, 9 bounced off modern WAF and we respected it. 88% SHIP, 12% BLOCK, median 76, 444 findings. Every site had findings. Here's what the shape of those findings says about how the web is being built right now, and why 'ship fast' can't keep ignoring the security layer.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"c:[\"$\",\"a\",\"checks-url-scanners-miss\",{\"href\":\"/blog/checks-url-scanners-miss\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#0A84FF] bg-[#0A84FF]/10\",\"children\":\"Deep Scan\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"5 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"5 security checks a URL-only scanner will never catch\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"A URL scan checks your front door. Deep scans check whether the windows are locked. Here are the five classes of findings that only show up when you plug in your Supabase, Firebase, or MCP credentials.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}]\nd:[\"$\",\"a\",\"using-true-not-safe\",{\"href\":\"/blog/using-true-not-safe\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#30D158] bg-[#30D158]/10\",\"children\":\"Supabase\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"4 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"Your Supabase RLS says \\\"enabled.\\\" Here's why your database is still open.\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"A Row Level Security policy with USING(true) passes every dashboard check and leaks every row. We've seen it in production apps, in our own test projects, and in the Supabase docs themselves. Here's what it looks like and how to find it before someone else does.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}]\ne:[\"$\",\"a\",\"firebase-rules-audit\",{\"href\":\"/blog/firebase-rules-audit\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF9F0A] bg-[#FF9F0A]/10\",\"children\":\"Firebase\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"4 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"\\\"allow read, write: if true\\\" â the Firestore rules gap nobody fixes in time\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"Firebase test-mode rules give you 30 days. A lot of apps get a year. We've scanned projects with wide-open Firestore, wide-open Storage, and surprisingly tight rules that just needed a matching deny-all fallback. Here's what the audit actually checks.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}]\nf:[\"$\",\"a\",\"web-security-audit-49-sites-2026\",{\"href\":\"/blog/web-security-audit-49-sites-2026\",\"className\":\"block\",\"children\":[\"$\",\"article\",null,{\"className\":\"group p-6 rounded-2xl bg-[#111113] border border-white/5 hover:border-white/10 transition-all\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-3\","])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"\"children\":[[\"$\",\"span\",null,{\"className\":\"px-2.5 py-0.5 rounded-full text-xs font-semibold text-[#FF453A] bg-[#FF453A]/10\",\"children\":\"Research\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"April 2026\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"8 min read\"}]]}],[\"$\",\"h2\",null,{\"className\":\"font-[var(--font-heading)] text-xl font-bold mb-2 group-hover:text-[#30D158] transition-colors\",\"children\":\"We scanned 49 of the internet's biggest sites. Here's what we found.\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-4\",\"children\":\"GitHub, Google, Slack, Stripe, Notion, Vercel, and 43 others. 89% passed. 5 got BLOCK. Every single site had findings. The average score was 80/100. Full data and methodology inside.\"}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[#30D158] font-medium\",\"children\":\"Read more â\"}]]}]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"10:[\"$\",\"footer\",null,{\"className\":\"border-t border-white/5 bg-black\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-6xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 md:grid-cols-5 gap-8 mb-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"col-span-2 md:col-span-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 mb-4\",\"children\":[[\"$\",\"$L18\",null,{\"size\":24}],[\"$\",\"span\",null,{\"className\":\"font-[var(--font-heading)] font-bold\",\"children\":\"sekrd\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B] leading-relaxed mb-3\",\"children\":\"Deep security audit for AI-built apps. Don't ship until you're sekrd.\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-[#86868B]\",\"children\":\"Sekrd · Security + Compliance audit\"}]]}],[[\"$\",\"div\",\"Product\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-sm font-semibold mb-4 text-[#A1A1A6]\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-1\",\"children\":[[\"$\",\"li\",\"/scan\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/scan\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Free Scan\"}]}],[\"$\",\"li\",\"/pricing\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/pricing\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Pricing\"}]}],[\"$\",\"li\",\"/docs\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/docs\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Documentation\"}]}],[\"$\",\"li\",\"/blog\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/blog\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Blog\"}]}],[\"$\",\"li\",\"https://github.com/marketplace/actions/sekrd-security-scan\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/marketplace/actions/sekrd-security-scan\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub Action\"}]}]]}]]}],[\"$\",\"div\",\"Company\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-sm font-semibold mb-4 text-[#A1A1A6]\",\"children\":\"Company\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-1\",\"children\":[[\"$\",\"li\",\"/about\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/about\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"About\"}]}],[\"$\",\"li\",\"/support\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/support\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Support\"}]}],[\"$\",\"li\",\"/terms\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/terms\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Terms of Service\"}]}],[\"$\",\"li\",\"/privacy\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/privacy\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Privacy Policy\"}]}]]}]]}],[\"$\",\"div\",\"Trust\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-sm font-semibold mb-4 text-[#A1A1A6]\",\"children\":\"Trust\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-1\",\"children\":[[\"$\",\"li\",\"/trust\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/trust\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Trust center\"}]}],[\"$\",\"li\",\"/security-policy\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/security-policy\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Security policy\"}]}],[\"$\",\"li\",\"/docs/cwe-mapping\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/docs/cwe-mapping\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"CWE mapping\"}]}],[\"$\",\"li\",\"/docs/vulnerability-updates\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/docs/vulnerability-updates\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Update cadence\"}]}],[\"$\",\"li\",\"/status\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/status\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Status\"}]}],[\"$\",\"li\",\"/changelog\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/changelog\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"children\":\"Changelog\"}]}]]}]]}],\"$L1a\"]]}],\"$L1b\"]}]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"11:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0~wp-0lntc6lt.js\",\"async\":true,\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]\n12:[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$1d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1e\"}]}]\n1f:[]\n13:\"$W1f\"\n14:[\"$\",\"$2\",\"h\",{\"children\":[null,[\"$\",\"$L20\",null,{\"children\":\"$L21\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L22\",null,{\"children\":[\"$\",\"$1d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L23\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n16:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i3hrjo2hnx_l.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]\n17:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/16qne651ky9y~.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\"}]\n1a:[\"$\",\"div\",\"Connect\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-sm font-semibold mb-4 text-[#A1A1A6]\",\"children\":\"Connect\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-1\",\"children\":[[\"$\",\"li\",\"https://github.com/sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/sekrdcom\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"https://t.me/sekrdbot\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://t.me/sekrdbot\",\"className\":\"text-sm text-[#86868B] hover:text-white transition-colors inline-block py-1.5\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Telegram\"}]}]]}]]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"1b:[\"$\",\"div\",null,{\"className\":\"pt-8 border-t border-white/5 flex flex-col sm:flex-row items-center justify-between gap-4\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":[\"© \",2026,\" Sekrd. All rights reserved.\"]}],[\"$\",\"ul\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"li\",\"https://www.youtube.com/@sekrd\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/@sekrd\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"YouTube\",\"title\":\"YouTube\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"}]}]}]}],[\"$\",\"li\",\"https://www.linkedin.com/company/sekrd\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/company/sekrd\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"LinkedIn\",\"title\":\"LinkedIn\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.063 2.063 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"}]}]}]}],[\"$\",\"li\",\"https://x.com/sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://x.com/sekrdcom\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"X\",\"title\":\"X\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z\"}]}]}]}],[\"$\",\"li\",\"https://www.instagram.com/sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.instagram.com/sekrdcom\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Instagram\",\"title\":\"Instagram\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\"}]}]}]}],\"$L24\",\"$L25\",\"$L26\"]}],\"$L27\"]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"24:[\"$\",\"li\",\"https://www.tiktok.com/@sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.tiktok.com/@sekrdcom\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"TikTok\",\"title\":\"TikTok\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5.8 20.1a6.34 6.34 0 0 0 10.86-4.43V8.66a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1.84-.09Z\"}]}]}]}]\n25:[\"$\",\"li\",\"https://facebook.com/sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://facebook.com/sekrdcom\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Facebook\",\"title\":\"Facebook\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z\"}]}]}]}]\n28:T498,M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.781 3.631 2.695 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.293a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z26:[\"$\",\"li\",\"https://www.threads.com/@sekrdcom\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.threads.com/@sekrdcom\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Threads\",\"title\":\"Threads\",\"className\":\"inline-flex items-center justify-center w-9 h-9 rounded-md text-[#86868B] hover:text-white hover:bg-white/5 transition-colors\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"aria-hidden\":true,\"className\":\"w-[18px] h-[18px]\",\"children\":[\"$\",\"path\",null,{\"d\":\"$28\"}]}]}]}]\n27:[\"$\",\"p\",null,{\"className\":\"text-xs text-[#86868B]\",\"children\":\"Don't ship until you're sekrd.\"}]\n21:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"3:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_ed26c892-module__0Hd1FG__variable space_grotesk_361135fd-module__Vna8kq__variable jetbrains_mono_b90ee254-module__ZcKZKW__variable h-full antialiased dark bg-black\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://api.sekrd.com\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://api.sekrd.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://cdn.paddle.com\"}],[\"$\",\"meta\",null,{\"name\":\"google-site-verification\",\"content\":\"bhDdgsbc9g1rIVUhQXtdMaKVEOELUBQCw2CzNTlQTL8\"}],[\"$\",\"script\",null,{\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"type\":\"application/ld+json\",\"children\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"Sekrd\\\",\\\"description\\\":\\\"Deep security audit for AI-built apps. Find Supabase RLS, Firebase rules, and auth vulnerabilities.\\\",\\\"url\\\":\\\"https://sekrd.com\\\",\\\"applicationCategory\\\":\\\"SecurityApplication\\\",\\\"operatingSystem\\\":\\\"Web\\\",\\\"offers\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"description\\\":\\\"Free tier â URL scans with monthly quota\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"39\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"description\\\":\\\"Pre-Launch Audit â one-time deep audit + compliance review + PDF report\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"29\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"description\\\":\\\"Continuous Pro â monthly monitoring with drift alerts\\\"}]}\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col text-[#F5F5F7] font-[var(--font-inter)]\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L29\",null,{}],[\"$\",\"$L2a\",null,{\"id\":\"cf-beacon\",\"src\":\"https://static.cloudflareinsights.com/beacon.min.js\",\"strategy\":\"lazyOnload\",\"nonce\":\"YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi\",\"data-cf-beacon\":\"{\\\"token\\\":\\\"f793f28d6f614859b63d5e0a11e31fbb\\\"}\"}],[\"$\",\"$L2b\",null,{\"children\":[[\"$\",\"$L2c\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$2d\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0qco2lbz6e8ii.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen\",\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"div\",null,{\"className\":\"max-w-md mx-auto px-6 py-32 text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"font-[var(--font-heading)] text-6xl font-bold text-[#30D158] mb-4\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"text-xl text-[#F5F5F7] mb-2\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"text-[#86868B] mb-8\",\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L19\",null,{\"href\":\"/\",\"className\":\"inline-block px-6 py-3 bg-[#30D158] text-black font-bold rounded-xl hover:bg-[#28B84C] transition-all\",\"children\":\"Back to home\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L2e\",null,{}]]}]]}]]}]\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"1e:null\n"])</script>
2<script nonce="YWZiMjUyODgtYTZiNi00ODgyLWFmZGItOTliZmYzYWVkNDNi">self.__next_f.push([1,"23:[[\"$\",\"title\",\"0\",{\"children\":\"Blog | Sekrd\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Security research, case studies, and insights on securing AI-built applications. Supabase RLS audits, Firebase rules analysis, and vibe coding security.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Sekrd\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"security audit,supabase rls,firebase rules,vibe coding security,AI app security,lovable security,claude code security,cursor security,api security scanner,sekrd,mcp server security,security scanner,web app security,exposed api keys,rls policy audit,ai code security,vulnerability scanner,security badge,deep scan,fix prompts\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Sekrd\"}],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"6\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://sekrd.com/blog\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Sekrd â Deep security audit for AI-built apps\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"We find what your AI forgot to secure. Deep Supabase RLS, Firebase rules, auth flow auditing.\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://sekrd.com\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"Sekrd\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://sekrd.com/opengraph-image\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"Sekrd â Deep security audit for AI-built apps\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Sekrd â Deep security audit for AI-built apps\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"We find what your AI forgot to secure.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://sekrd.com/opengraph-image\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.0ra1442mwmect.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L2f\",\"24\",{}]]\n"])</script>
2</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.