PageSourceSearch

https://safeprompt.dev/blog

html safeprompt.dev collected 2026-10-02 00:35:26 UTC 273,752 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/fonts/geist-latin-wght.woff2" as="font" crossorigin="anonymous" type="font/woff2"/><link rel="preload" href="/fonts/geist-mono-latin-wght.woff2" as="font" crossorigin="anonymous" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/15c8en3c4du_u.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/20uppd860h-ku.js"/>
1<script src="/_next/static/chunks/1puftimsva8zn.js" async=""></script>
1<script src="/_next/static/chunks/0xbk39fs20p61.js" async=""></script>
1<script src="/_next/static/chunks/0o1hgap9f-5qc.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-3dyo_uar-vvwa.js" async=""></script>
1<script src="/_next/static/chunks/0s7lidlvw6rqe.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/3yk9utrb72ni7.js" async="" crossorigin=""></script>
1<link rel="dns-prefetch" href="https://api.safeprompt.dev"/><link rel="ai-catalog" href="/.well-known/ai-catalog.json"/><link rel="preload" href="/fonts/geist-latin-wght.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/geist-mono-latin-wght.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><title>AI Security Blog | Prompt Injection Guides and Research</title><meta name="description" content="Practical guides on prompt injection prevention, OWASP LLM risks, detection techniques, and real-world AI security incidents. Written for developers."/><meta name="author" content="SafePrompt"/><meta name="keywords" content="prompt injection detection, prompt injection API, AI security, LLM security, chatbot protection, free prompt injection, jailbreak prevention, prompt injection firewall"/><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://safeprompt.dev/blog"/><meta property="og:title" content="AI Security Blog | Prompt Injection Guides and Research"/><meta property="og:description" content="Practical guides on prompt injection prevention, OWASP LLM risks, detection techniques, and real-world AI security incidents. Written for developers."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="SafePrompt: Prompt Injection Detection API | One POST Request"/><meta name="twitter:description" content="Prompt injection detection API. One POST call returns safe/unsafe with a confidence score. Free tier: 10,000 free validations a month; paid from $29/month."/><meta name="twitter:image" content="https://safeprompt.dev/og-image-v3.png"/><link rel="shortcut icon" href="/favicon.svg"/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/favicon.svg"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="bg-background text-foreground min-h-screen"><div hidden=""><!--$--><!--/$--></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://safeprompt.dev/#organization","name":"SafePrompt","parentOrganization":{"@type":"Organization","name":"Reboot, Inc."},"url":"https://safeprompt.dev","logo":{"@type":"ImageObject","url":"https://safeprompt.dev/og-image-v3.png","width":1200,"height":630},"description":"SafePrompt is a prompt injection detection API that screens user inputs before they reach an LLM. One API call via raw HTTP or the open-source MIT-licensed SDKs. Detection and false-positive rates are measured continuously against the production API on a public benchmark suite you can re-run yourself.","disambiguatingDescription":"SafePrompt is a prompt injection detection API for developers. It is not a content-moderation, profanity-filter, or text-moderation service, and is distinct from other products that share the SafePrompt name. The SafePrompt Chrome extension is a companion browser tool by the same maker; the core product is the API.","foundingDate":"2025","founder":{"@type":"Person","@id":"https://safeprompt.dev/about#ian-ho","name":"Ian Ho"},"contactPoint":{"@type":"ContactPoint","contactType":"customer support","url":"https://safeprompt.dev/contact","email":"[email protected]"},"sameAs":["https://github.com/ianreboot/safeprompt","https://www.npmjs.com/package/safeprompt","https://pypi.org/project/safeprompt/","https://chromewebstore.google.com/detail/safeprompt-ai-prompt-inje/njifehhikfacodbgkklcdheapkemkbep","https://docs.safeprompt.dev","https://www.linkedin.com/company/safeprompt/"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://safeprompt.dev/#website","url":"https://safeprompt.dev","name":"SafePrompt","description":"Prompt injection detection API for AI developers. One API call protects your AI app from manipulation attacks.","publisher":{"@id":"https://safeprompt.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://safeprompt.dev/blog?q={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","@id":"https://safeprompt.dev/#product","name":"SafePrompt","applicationCategory":"SecurityApplication","applicationSubCategory":"API Security","operatingSystem":"Web","url":"https://safeprompt.dev","description":"Prompt injection detection API for AI applications. Screens user inputs for injection attacks, jailbreaks, and manipulation attempts with a single API call. Most requests run AI semantic analysis; requests the pattern layers resolve return in tens of milliseconds. Detection and false-positive rates are measured continuously against the production API and published on safeprompt.dev.","disambiguatingDescription":"SafePrompt is a prompt injection detection API for developers. It is not a data-anonymization tool or a model-provider guardrail feature, and is distinct from other products that share the SafePrompt name. The API is the core product; a companion Chrome extension by the same maker is listed separately on the Chrome Web Store.","featureList":["Prompt injection detection","Jailbreak detection","Multi-turn attack detection","External reference detection","Custom allow/block lists","Network threat intelligence","Self-serve data export and same-day deletion in the dashboard","Session-based conversation tracking"],"screenshot":"https://safeprompt.dev/og-image-v3.png","softwareVersion":"1.0","creator":{"@id":"https://safeprompt.dev/#organization"},"offers":[{"@type":"Offer","name":"Free","price":"0","priceCurrency":"USD","description":"10,000 prompt validations per month. Full detection engine. Network intelligence contribution required. Instant self-serve signup.","eligibleQuantity":{"@type":"QuantitativeValue","value":10000,"unitText":"validations per month"}},{"@type":"Offer","name":"Starter","price":"29","priceCurrency":"USD","description":"500,000 prompt validations per month. IP-based threat intelligence. Intelligence opt-out. Same detection engine as all tiers.","priceSpecification":{"@type":"UnitPriceSpecification","price":"29","priceCurrency":"USD","unitText":"month"}},{"@type":"Offer","name":"Business","price":"99","priceCurrency":"USD","description":"1,000,000 prompt validations per month. Priority email support. Custom whitelist and blacklist phrases (100 each). Dedicated support. Custom rate limits.","priceSpecification":{"@type":"UnitPriceSpecification","price":"99","priceCurrency":"USD","unitText":"month"}}]}</script>
1<div class="relative z-10"><div class="min-h-screen bg-background text-foreground"><div class="clinical"><svg width="0" height="0" aria-hidden="true" focusable="false" style="position:absolute"><symbol id="sp-mark" viewBox="2.3 3.8 24.9 27.4"><path fill="currentColor" d="M14.3718 3.85059C14.4271 3.8521 14.4002 3.84502 14.451 3.88327C14.4905 3.99381 14.4707 4.77377 14.4646 4.91079C14.4088 6.17107 14.6074 17.9801 14.316 18.2402C13.9123 18.2364 11.3741 16.3216 10.9144 15.9846C10.5749 15.7357 9.87834 15.0228 9.6501 14.6373C9.48514 14.3587 9.36913 14.0539 9.30705 13.7362C9.2095 13.2122 9.16975 10.7128 9.29612 10.2216C8.77579 10.3207 7.81853 10.5153 7.36333 10.7474C7.35831 11.4883 7.54753 12.3156 7.59771 13.0605C7.675 14.2076 7.86652 15.1909 8.17996 16.2966C8.67883 18.0565 9.28125 19.7591 10.3937 21.238C10.9052 21.918 11.3902 22.5183 11.9579 23.1525C12.3703 23.6137 12.8168 24.0432 13.2937 24.4373C13.5871 24.6827 14.1488 25.0679 14.3617 25.3499L14.3696 25.3605C14.389 25.6388 14.3274 27.1474 14.1607 27.2742C13.7225 27.2619 11.2339 24.8035 10.8075 24.3545C9.65525 23.1412 8.70149 21.8249 7.95533 20.3223C7.59199 19.5515 7.05799 18.7286 6.78262 17.9217C6.35732 16.6756 6.11933 15.2383 5.92762 13.9373C5.84049 13.346 5.86528 12.7298 5.81757 12.1443C5.75423 11.3671 5.69867 10.6014 5.72061 9.82334C6.32121 9.29881 9.3073 8.37298 10.2072 8.20931C10.4879 8.15824 10.8965 8.14227 11.1955 8.13614C11.2677 8.96879 11.1279 13.4698 11.2951 13.7878C11.4721 14.1245 12.1459 14.646 12.4787 14.8236C12.5754 14.8752 12.6897 14.9064 12.7942 14.9391C12.8333 14.0285 12.7534 12.7018 12.7389 11.75L12.6932 5.90111C12.294 5.99286 11.8647 6.06755 11.4595 6.15048C8.87466 6.67938 6.53085 7.48766 4.07879 8.4598C4.05833 8.81602 4.08674 9.41816 4.09033 9.80452C4.10081 10.9267 4.17592 12.0802 4.27618 13.198C4.32392 13.73 4.47408 14.3663 4.54034 14.8989C4.69468 16.1397 4.96509 17.3363 5.34786 18.5268C5.55563 19.173 6.01911 19.9913 6.28762 20.6447C6.65484 21.5384 6.91903 22.1408 7.48399 22.9278C7.56986 23.0572 7.66898 23.1755 7.75818 23.2988C9.06612 25.101 10.6906 26.5769 12.4755 27.9018C12.7087 28.0887 13.9965 29.2514 14.2952 29.0624C14.8985 28.6807 16.0295 27.7147 16.6029 27.2319C17.0523 26.8295 17.473 26.4346 17.9522 26.0641C18.9723 25.2752 20.435 24.7939 21.0283 23.5655C21.2672 23.071 21.2909 22.0346 21.0988 21.5251C20.7809 20.6714 19.4968 20.0219 18.6525 19.7732C17.6759 19.4855 16.9558 19.3439 15.985 18.9071C15.9122 18.3715 15.946 17.5825 15.9365 17.0206L15.855 13.5215C16.5759 13.63 17.169 13.8361 17.8587 14.0061C21.4257 14.8854 25.7785 15.8502 26.905 19.8986C27.4058 21.7703 27.153 23.7637 26.2008 25.451C25.4429 26.7967 24.4355 27.6604 23.0708 28.3686C21.6508 29.1054 20.1749 29.3294 18.6033 29.515C18.1752 29.5634 17.746 29.6017 17.3161 29.6297C17.0019 29.653 16.8007 29.663 16.4857 29.7162C15.8762 29.819 14.7022 31.1246 14.4038 31.2081C14.2029 31.1602 13.6625 30.7913 13.4643 30.6714C9.64055 28.3582 6.25293 25.1515 4.38048 21.0368C3.92218 20.0297 3.68816 18.8263 3.39481 17.7571C3.02655 16.4149 2.82133 15.1654 2.66427 13.7864C2.44371 11.6739 2.35174 9.54991 2.38887 7.42619C2.62765 7.1522 3.47838 6.92194 3.87447 6.75542C4.92071 6.3144 5.97989 5.90475 7.05062 5.527C8.07114 5.15665 9.18672 4.76271 10.2443 4.52128C11.594 4.21316 12.998 4.01846 14.3718 3.85059Z"></path><path fill="currentColor" d="M15.8584 3.81495C17.4501 3.81426 19.0732 3.84495 20.6061 4.32075C23.6469 5.26458 26.1776 7.96746 26.5064 11.1956C26.5231 11.3592 26.5475 11.61 26.4995 11.7655C26.0894 11.8171 24.6663 11.8013 24.1911 11.7916C23.2421 11.7723 21.8344 11.8448 20.9302 11.7412C20.6849 11.1941 20.564 10.5606 20.2747 10.0543C19.6472 8.95563 18.3672 8.34085 17.1454 8.22036C16.7725 8.18357 16.3545 8.181 15.9927 8.08431C15.9293 7.67156 15.9319 6.79588 15.9267 6.32914C15.9186 5.60611 15.8145 4.51798 15.8584 3.81495Z"></path></symbol></svg><div class="cx-runhead fixed inset-x-0 top-0 z-40 flex items-center justify-between gap-u-s border-b border-clinical-hair/10 bg-clinical-bg/[.86] px-u-s py-u-2xs backdrop-blur-md sm:px-u-m lg:px-u-l"><div class="flex min-w-0 items-center gap-2"><svg class="flex-none text-clinical-accent" width="16.357664233576642" height="18" viewBox="0 0 24.9 27.4" aria-hidden="true" focusable="false"><use href="#sp-mark"></use></svg><span class="min-w-0 truncate text-caption text-clinical-ink-soft"><b class="font-medium text-clinical-ink">SafePrompt</b> · Prompt injection detection API</span></div><a href="/#get-key" class="cx-lnk flex-none text-caption">Get a free API key</a></div><header class="mx-auto max-w-6xl px-u-s pt-u-m sm:px-u-m lg:px-u-l"><div class="flex flex-wrap items-end justify-between gap-u-s pb-u-xs"><div><a href="/" class="flex items-center gap-2.5 no-underline"><svg class="flex-none text-clinical-accent" width="29.080291970802918" height="32" viewBox="0 0 24.9 27.4" aria-hidden="true" focusable="false"><use href="#sp-mark"></use></svg><span class="text-display-sm leading-none tracking-tight text-clinical-ink">SafePrompt</span></a><div class="cx-lbl cx-lbl-nc mt-1.5 text-caption">Prompt injection detection API for LLM apps and agents.</div></div><nav aria-label="Primary" class="flex flex-wrap items-center gap-x-u-s gap-y-2"><a href="/playground" class="border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Playground</a><a href="https://docs.safeprompt.dev" class="border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Docs</a><a href="/blog" class="border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Blog</a><a href="https://dashboard.safeprompt.dev/login" class="border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Login</a></nav></div></header></div><section class="pt-12 pb-16 px-6"><div class="container mx-auto max-w-4xl"><h1 class="text-5xl font-bold mb-4">Prompt Injection Blog</h1><p class="text-xl text-muted-foreground">
1Real attacks, taken apart, and the code that stops them</p></div></section><section class="pb-20 px-6"><div class="container mx-auto max-w-4xl"><div class="space-y-8"><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/claude-code-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Claude Code Prompt Injection | The Hook That Blocks It</h2><p class="text-muted-foreground">A coding agent reads files, fetched pages and command output. See the three doors an injection walks through, and the hook that denies the poisoned file.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Claude Code</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Indirect Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/openclaw-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">OpenClaw Prompt Injection | The Sandbox Is Off by Default</h2><p class="text-muted-foreground">An OpenClaw agent reads channels, documents, logs and Moltbook posts before it acts. Three 2026 disclosures, the sandbox default, and where the check goes.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">OpenClaw</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Indirect Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/vibe-coded-app-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>7 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Vibe Coding Security | Close the Injection Gap in Ten Lines</h2><p class="text-muted-foreground">A generated app checks the shape of an input and trusts the words inside it. See the three inputs that carry instructions, and one ten-line check for them.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Vibe Coding</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Node.js</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/hermes-agent-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Hermes Agent Prompt Injection | The Four Inputs It Reads</h2><p class="text-muted-foreground">Hermes Agent reads web pages, MCP tool results, files and chat messages. See the four injection paths, three tested payloads, and where the check goes.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Hermes Agent</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">MCP</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/grok-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Grok Prompt Injection | Three Bots, One Attack Surface</h2><p class="text-muted-foreground">Grok on X, Grok Bot and your own Grok API app all read text you did not write. See the 3 injection paths, a real payload and verdict, and where to check.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Grok</span><span class="px-3 py-1 bg-card rounded-full text-xs">xAI</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/indirect-injection-ai-agents"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Indirect Injection in AI Agents | Two Leaks, One Root Cause</h2><p class="text-muted-foreground">The attack rides in through the data an agent reads, an email, a support ticket, a retrieved document, not the prompt you type. How EchoLeak and the Supabase MCP leak 
1worked, and how to stop the class.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Indirect Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">RAG Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/mcp-security-guide"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">MCP Security | Four Ways a Tool Can Hijack Your Agent</h2><p class="text-muted-foreground">MCP gives an agent many inputs it did not write: tool descriptions, tool results, retrieved documents. This guide covers the four injection vectors, why platform-native guardrails miss them, and how to validate every tool input in one call.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">MCP</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/safeprompt-langchain-python"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">LangChain Python Prompt Injection | One Callback Handler</h2><p class="text-muted-foreground">Stop wrapping every invoke() by hand. The safeprompt-langchain callback handler validates every prompt and tool output in your LangChain Python app automatically, including the indirect-injection surface a chat-box filter never sees.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">LangChain</span><span class="px-3 py-1 bg-card rounded-full text-xs">Python</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/pdf-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>7 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">PDF Prompt Injection | The Invoice That Hijacks Your AI</h2><p class="text-muted-foreground">We hid one line of white text in an invoice PDF and the AI summarizing it obeyed. The attack rides in through the upload box, not the chat box, so a chat-input filter never sees it. Here is the attack and how SafePrompt blocks it.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Indirect Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Hidden Text</span><span class="px-3 py-1 bg-card rounded-full text-xs">RAG Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/chipotle-pepper-ai-abuse"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Chipotle AI Bot Abuse | How a Support Bot Wrote Free Code</h2><p class="text-muted-foreground">People turned Chipotle&#x27;s support chatbot &quot;Pepper&quot; into a free coding assistant, then shipped a whole AI agent on top of it. Here is what happened, why it matters, and which parts of it are the attack class SafePrompt is designed to detect.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Jailbreak</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Incident Analysis</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Chatbot Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/best-prompt-injection-detection-tools"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>14 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection Tools | 6 Options Ranked for Developers</h2><p class="text-muted-foreground">Six tools compared on where each one runs, what it costs, and which projects are still maintained. Two of the six repositories are archived.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Comparison</span><span class="px-3 py-1 bg-card rounded-full text-xs">LLM Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/nodejs-openai-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>11 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Node.js Prompt Injection | Validate Before You Call GPT-4o</h2><p class="text-muted-foreground">Add prompt injection protection between your Node.js app and OpenAI in about 20 minutes. Express middleware, streaming validation, multi-turn session detection. Works with GPT-4, GPT-4o, any OpenAI model.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Node.js</span><span class="px-3 py-1 bg-card rounded-full text-xs">OpenAI</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/azure-prompt-shields-alternative"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>10 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Azure Prompt Shields Alternative | Cost and Lock-In Compared</h2><p class="text-muted-foreground">Azure Prompt Shields needs a subscription, a Content Safety resource and a region, and bills per 1,000 text records. What it returns, and what costs less.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Azure Prompt Shields</span><span class="px-3 py-1 bg-card rounded-full text-xs">GuardrailsAI</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Comparison</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/detect-prompt-injection-nodejs"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
1 stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>12 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Detect Prompt Injection | Node and Python in Five Minutes</h2><p class="text-muted-foreground">Step-by-step guide to detecting prompt injection in Node.js and Python apps. Includes Express middleware, FastAPI integration, and production code examples. Fix in about 20 minutes with one API call.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Node.js</span><span class="px-3 py-1 bg-card rounded-full text-xs">Python</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/langchain-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>10 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">LangChain Prompt Injection | Check Before invoke() Runs</h2><p class="text-muted-foreground">LangChain apps have 66-84% attack success rates. Learn how to protect LangChain chains, LangGraph agents, and RAG pipelines from prompt injection with working Python and TypeScript code.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">LangChain</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/claude-mcp-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Claude MCP Prompt Injection | Tool Returns Are Input Too</h2><p class="text-muted-foreground">
1One malicious file can hijack your Claude MCP agent. Learn how indirect prompt injection exploits MCP tool calls, with TypeScript and Python code to validate inputs and tool outputs.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">MCP</span><span class="px-3 py-1 bg-card rounded-full text-xs">Claude</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/indirect-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>11 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Indirect Prompt Injection | Four Doors Into Your AI</h2><p class="text-muted-foreground">Indirect prompt injection hides malicious instructions in documents, web pages, and emails that your AI retrieves. Affects all RAG pipelines. Detect it with the same API call as direct injection.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Indirect Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">RAG Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/nextjs-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Next.js Prompt Injection | App Router, Actions, AI SDK</h2><p class="text-muted-foreground">Protect Next.js AI routes, Server Actions, and Vercel AI SDK useChat streams from prompt injection. Includes App Router middleware pattern and streaming validation examples.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Next.js</span><span class="px-3 py-1 bg-card rounded-full text-xs">Vercel AI SDK</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/owasp-llm01-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>10 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">OWASP LLM01 Prompt Injection | The Seven Mitigations</h2><p class="text-muted-foreground">OWASP ranks prompt injection as the #1 LLM security risk. Learn what LLM01 means, why a Chevrolet chatbot agreed to a one-dollar sale, and how SafePrompt maps to each OWASP recommended mitigation.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">OWASP</span><span class="px-3 py-1 bg-card rounded-full text-xs">LLM01</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Compliance</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/system-prompt-extraction"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">System Prompt Extraction | How Attackers Steal Your Rules</h2><p class="text-muted-foreground">&quot;Repeat your system prompt.&quot; One sentence can expose your entire AI configuration. Learn how extraction attacks work and why system prompt hardening alone doesn&#x27;t stop them.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">System Prompt</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Extraction</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Data Protection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/rag-security-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>11 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">RAG Security | Four Layers Against a Poisoned Document</h2><p class="text-muted-foreground">Every document in your RAG pipeline is a potential attack vector. Learn the four-layer RAG security model with code for LlamaIndex, LangChain RAG, and raw vector DB pipelines.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">RAG</span><span class="px-3 py-1 bg-card rounded-full text-xs">Vector Database</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/litellm-supply-chain-attack-ai-security"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">LiteLLM prompt injection and the poisoned package: what was actually hit</h2><p class="text-muted-foreground">The LiteLLM PyPI supply chain attack stole API keys from thousands of developers. We break down what happened, which parts are the attack class SafePrompt is designed to detect, and why AI security needs more than one layer.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Supply Chain</span><span class="px-3 py-1 bg-card rounded-full text-xs">Incident Analysis</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/ai-security-api-standard"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>7 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">AI API Security | Why There Is Still No Standard Spec</h2><p class="text-muted-foreground">Databases have SQL. Auth has OAuth. AI security has no standard API, which creates dangerous vendor lock-in for a security-critical layer. Here&#x27;s what the standard should look like.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">API Standard</span><span class="px-3 py-1 bg-card rounded-full text-xs">Thought Leadership</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/prompt-injection-attack-examples"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hid
1den="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>11 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection Examples | Real Payloads and Verdicts</h2><p class="text-muted-foreground">Concrete prompt injection attack payloads across 6 categories: direct override, role manipulation, system prompt extraction, data exfiltration, hidden text injection, and multi-turn attacks. Test each one free.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Attack Examples</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/what-is-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>12 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">What Is Prompt Injection? The #1 AI Security Risk Explained</h2><p class="text-muted-foreground">Prompt injection is a security attack where malicious inputs manipulate AI systems to ignore instructions. Learn how it works, real incidents (Chevrolet, Air Canada), and how to protect your apps.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">OWASP</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/owasp-top-10-llm-explained"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>15 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">OWASP Top 10 for LLMs | Ten Risks, a Named Case Each</h2><p class="text-muted-foreground">Complete guide to the OWASP Top 10 security risks for AI applications. Covers prompt injection (#1), data leakage, supply chain attacks, and how to mitigate each risk.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">OWASP</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Compliance</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/prompt-injection-vs-jailbreaking"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>6 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection vs Jailbreaking | One Sits Inside the Other</h2><p class="text-muted-foreground">Prompt injection overrides system instructions. Jailbreaking bypasses safety filters. Learn the distinction, with examples of each attack type and how SafePrompt detects both.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Jailbreaking</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/ai-agent-prompt-injection-risks"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>10 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">AI Agent Security | When an Injection Becomes an Action</h2><p class="text-muted-foreground">AI agents with tool access face 66-84% attack success rates. Learn how MCP, LangChain, and AutoGPT agents are vulnerable to prompt injection and how to protect them.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">AI Agents</span><span class="px-3 py-1 bg-card rounded-full text-xs">MCP</span><span class="px-3 py-1 bg-card rounded-full text-xs">LangChain</span><span class="px-3 py-1 bg-card rounded-full text-xs">Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/prompt-injection-vs-sql-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>7 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection vs SQL Injection | No Prepared Statement</h2><p class="text-muted-foreground">Compare prompt injection and SQL injection attacks. Both exploit instruction-data confusion, but prompt injection has no equivalent to parameterized queries.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">SQL Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Security Comparison</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/test-ai-app-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Test Your AI App for Prompt Injection | The Four-Pass Method</h2><p class="text-muted-foreground">Step-by-step guide to testing AI applications for prompt injection. Covers manual testing, automated red-teaming tools, and SafePrompt&#x27;s playground.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Testing</span><span class="px-3 py-1 bg-card rounded-full text-xs">Security Assessment</span><span class="px-3 py-1 bg-card rounded-full text-xs">Red Teaming</span><span class="px-3 py-1 bg-card rounded-full text-xs">Playground</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/prompt-injection-protection-side-projects"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>5 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection Protection for Side Projects | 20 Minutes</h2><p class="text-muted-foreground">Yes. Side projects are especially vulnerable because you don&#x27;t have a security team. Learn why small AI apps need protection and how to add it in about 20 minutes.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Side Projects</span><span class="px-3 py-1 bg-card rounded-full text-xs">Indie Developer</span><span class="px-3 py-1 bg-card rounded-full text-xs">Free Tier</span><span class="px-3 py-1 bg-card rounded-full text-xs">Getting Started</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/chrome-extension-launch"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><
1svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>5 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Prompt Injection Chrome Extension | See the Hidden Text</h2><p class="text-muted-foreground">The SafePrompt Chrome Extension is now live on the Chrome Web Store. Detect hidden text attacks and prompt injection in real-time while browsing. Free to install and use.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Chrome Extension</span><span class="px-3 py-1 bg-card rounded-full text-xs">Browser Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/openclaw-ai-guide"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>18 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">OpenClaw AI Guide | Features, Moltbook and Shell Access</h2><p class="text-muted-foreground">Everything you need to know about OpenClaw AI - the open-source personal AI assistant. Covers features, Moltbook integration, agent-to-agent security risks, and essential do&#x27;s and don&#x27;ts for safe usage.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">OpenClaw AI</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Assistant</span><span class="px-3 py-1 bg-card rounded-full text-xs">Open Source</span><span class="px-3 py-1 bg-card rounded-full text-xs">Security Guide</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/hidden-text-injection-attacks"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>12 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Hidden Text Injection | 16 Tricks Your Eyes Never See</h2><p class="text-muted-foreground">Learn how attackers use 16+ CSS and HTML techniques to hide malicious instructions from humans while manipulating AI assistants. Includes live demos and protection strategies.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Hidden Text</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/hidden-text-injection-demo"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>5 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Hidden Text Injection Demo | Watch Three AIs Fall for It</h2><p class="text-muted-foreground">Controlled demo pages showing hidden text your eyes skip and your AI reads. Open one, ask any AI to summarise it, and watch the injected instruction take over.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Hidden Text</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Demo</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/how-to-prevent-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>10 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">How to Prevent Prompt Injection | Three Ways, One Winner</h2><p class="text-muted-foreground">The complete guide to protecting AI applications from prompt injection. Covers DIY approaches, security APIs, and real implementation examples.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prevention</span><span class="px-3 py-1 bg-card rounded-full text-xs">Developer Guide</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/lakera-alternative"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Lakera Guard pricing, and the self-serve alternative to it</h2><p class="text-muted-foreground">An honest comparison of SafePrompt and Lakera Guard for prompt injection protection. Pricing, features, and use cases for each.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Comparison</span><span class="px-3 py-1 bg-card rounded-full text-xs">Lakera</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/why-regex-fails-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>9 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Why Regex Fails for Prompt Injection Detection</h2><p class="text-muted-foreground">Technical analysis of why regex-based prompt injection filters fail. Includes bypass examples and better alternatives.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Regex</span><span class="px-3 py-1 bg-card rounded-full text-xs">Detection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/safeprompt-gpt-protection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>12 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Custom GPT Security | Stop Yours Being Talked Off-Script</h2><p class="text-muted-foreground">Real incidents like Chevrolet&#x27;s one-dollar-sale chatbot and Air Canada&#x27;s lawsuit prove chatbot security matters. Learn how SafePrompt&#x27;s GPT plugin stops jailbreaks, data leaks, and brand damage. Interactive demos included.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">ChatGPT</span><span class="px-3 py-1 bg-card rounded-full text-xs">GPT Plugin</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/stop-chatbot-prompt-injection"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-mu
1ted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>7 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">How to Stop Chatbot Prompt Injection Attacks</h2><p class="text-muted-foreground">Prevent chatbots from being manipulated to make unauthorized promises, leak data, or damage reputation. Includes real attack examples and 20-minute protection setup.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span><span class="px-3 py-1 bg-card rounded-full text-xs">Protection</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article><article class="bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition"><a href="/blog/prevent-ai-email-attacks"><div class="space-y-4"><div class="flex items-center gap-4 text-sm text-muted-foreground"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><span>Ian Ho</span></div><span>•</span><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-4 h-4" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg><span>8 min read</span></div></div><h2 class="text-2xl font-bold hover:text-primary transition">Invisible text in Gmail: how a contact form hijacks your AI summary</h2><p class="text-muted-foreground">Fix Gmail hack attacks by validating contact forms with prompt injection detection. Simple API integration stops invisible text exploits in about 20 minutes. Free tier available.</p><div class="flex items-center justify-between"><div class="flex gap-2"><span class="px-3 py-1 bg-card rounded-full text-xs">Prompt Injection</span><span class="px-3 py-1 bg-card rounded-full text-xs">Gmail Hack</span><span class="px-3 py-1 bg-card rounded-full text-xs">AI Security</span></div><div class="flex items-center gap-1 text-primary">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></div></div></div></a></article></div></div></section><div class="clinical"><footer class="border-t border-clinical-hair/10 py-u-xl"><div class="mx-auto max-w-6xl px-u-s sm:px-u-m lg:px-u-l"><div class="grid grid-cols-2 gap-u-m sm:grid-cols-3 lg:grid-cols-[1.4fr_repeat(4,minmax(0,1fr))]"><div class="col-span-2 sm:col-span-3 lg:col-span-1"><div class="flex items-center gap-2.5"><svg class="flex-none text-clinical-accent" width="27.26277372262774" height="30" viewBox="0 0 24.9 27.4" aria-hidden="true" focusable="false"><use href="#sp-mark"></use></svg><span class="text-display-sm leading-none tracking-tight text-clinical-ink">SafePrompt</span></div><p class="cx-lbl cx-lbl-nc mt-u-2xs text-caption">Prompt injection detection API for LLM apps and agents.</p><p class="mt-u-2xs text-caption"><a href="https://github.com/ianreboot/safeprompt" class="text-clinical-ink-soft no-underline hover:text-clinical-ink">GitHub</a><span class="text-clinical-ink-mute"> · </span><a href="https://www.npmjs.com/package/safeprompt" class="text-clinical-ink-soft no-underline hover:text-clinical-ink">npm</a></p></div><div><h3 class="cx-lbl text-caption">Resources</h3><ul class="mt-u-2xs list-none space-y-1.5 p-0"><li><a href="https://docs.safeprompt.dev" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Documentation</a></li><li><a href="https://docs.safeprompt.dev/api-reference" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">API Reference</a></li><li><a href="https://docs.safeprompt.dev/quick-start" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Quick Start</a></li><li><a href="/blog" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Blog</a></li></ul></div><div><h3 class="cx-lbl text-caption">Product</h3><ul class="mt-u-2xs list-none space-y-1.5 p-0"><li><a href="/pricing" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Pricing</a></li><li><a href="/playground" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Playground</a></li><li><a href="/agent-security" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">AI Agent Security</a></li><li><a href="https://dashboard.safeprompt.dev" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Dashboard</a></li><li><a href="https://chromewebstore.google.com/detail/safeprompt-ai-prompt-inje/njifehhikfacodbgkklcdheapkemkbep" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Chrome Extension</a></li></ul></div><div><h3 class="cx-lbl text-caption">Company</h3><ul class="mt-u-2xs list-none space-y-1.5 p-0"><li><a href="/about" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">About</a></li><li><a href="/faq" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">FAQ</a></li><li><a href="/limitations" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Limitations</a></li><li><a href="/contact" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Contact</a></li></ul></div><div><h3 class="cx-lbl text-caption">Legal</h3><ul class="mt-u-2xs list-none space-y-1.5 p-0"><li><a href="/terms" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Terms of Service</a></li><li><a href="/privacy" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Privacy Policy</a></li><li><a href="/security" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Security &amp; Data Handling</a></li><li><a href="https://www.google.com/preferences/source?q=safeprompt.dev" rel="noopener" target="_blank" class="border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink">Add us as a preferred source on Google</a></li></ul></div></div><div class="mt-u-m border-t border-clinical-hair/10 pt-u-s"><p class="cx-mono text-caption text-clinical-ink-mute">© 2026 SafePrompt by Reboot, Inc. All rights reserved.</p><p class="cx-mono mt-u-2xs text-caption text-clinical-ink-mute">Prompt injection detection API for LLM apps and agents.</p></div></div></footer></div></div><!--$--><!--/$--></div><button aria-label="Send feedback" class="sp-fab fixed bottom-3 right-3 sm:bottom-6 sm:right-6 flex items-center gap-0 sm:gap-2 p-3 sm:px-4 sm:py-3 bg-primary text-primary-foreground rounded-full shadow-lg hover:bg-primary transition-all hover:scale-105 z-50 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square w-5 h-5" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path></svg><span class="sr-only sm:not-sr-only">Feedback</span></button>
1<script src="/_next/static/chunks/20uppd860h-ku.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\na:I[89192,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/15c8en3c4du_u.css\",\"style\"]\n:HL[\"/fonts/geist-latin-wght.woff2\",\"font\",{\"crossOrigin\":\"anonymous\",\"type\":\"font/woff2\"}]\n:HL[\"/fonts/geist-mono-latin-wght.woff2\",\"font\",{\"crossOrigin\":\"anonymous\",\"type\":\"font/woff2\"}]\n2:T618,{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"@id\":\"https://safeprompt.dev/#organization\",\"name\":\"SafePrompt\",\"parentOrganization\":{\"@type\":\"Organization\",\"name\":\"Reboot, Inc.\"},\"url\":\"https://safeprompt.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://safeprompt.dev/og-image-v3.png\",\"width\":1200,\"height\":630},\"description\":\"SafePrompt is a prompt injection detection API that screens user inputs before they reach an LLM. One API call via raw HTTP or the open-source MIT-licensed SDKs. Detection and false-positive rates are measured continuously against the production API on a public benchmark suite you can re-run yourself.\",\"disambiguatingDescription\":\"SafePrompt is a prompt injection detection API for developers. It is not a content-moderation, profanity-filter, or text-moderation service, and is distinct from other products that share the SafePrompt name. The SafePrompt Chrome extension is a companion browser tool by the same maker; the core product is the API.\",\"foundingDate\":\"2025\",\"founder\":{\"@type\":\"Person\",\"@id\":\"https://safeprompt.dev/about#ian-ho\",\"name\":\"Ian Ho\"},\"contactPoint\":{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"url\":\"https://safeprompt.dev/contact\",\"email\":\"[email protected]\"},\"sameAs\":[\"https://github.com/ianreboot/safeprompt\",\"https://www.npmjs.com/package/safeprompt\",\"https://pypi.org/project/safeprompt/\",\"https://chromewebstore.google.com/detail/safeprompt-ai-prompt-inje/njifehhikfacodbgkklcdheapkemkbep\",\"https://docs.safeprompt.dev\",\"https://www.linkedin.com/company/safeprompt/\"]}3:T987,{\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",\"@id\":\"https://safeprompt.dev/#product\",\"name\":\"SafePrompt\",\"applicationCategory\":\"SecurityApplication\",\"applicationSubCategory\":\"API Security\",\"operatingSystem\":\"Web\",\"url\":\"https://safeprompt.dev\",\"description\":\"Prompt injection detection API for AI applications. Screens user inputs for injection attacks, jailbreaks, and manipulation attempts with a single API call. Most requests run AI semantic analysis; requests the pattern layers resolve return in tens of milliseconds. Detection and false-positive rates are measured continuously against the production API and published on safeprompt.dev.\",\"disambiguatingDescription\":\"SafePrompt is a prompt injection detection API for developers. It is not a data-anonymization tool or a model-provider guardrail feature, and is distinct from other products that share the SafePrompt name. The API is the core product; a companion Chrome extension by the same maker is listed separately on the Chrome Web Store.\",\"featureList\":[\"Prompt injection detection\",\"Jailbreak detection\",\"Multi-turn attack detection\",\"External reference detection\",\"Custom allow/block lists\",\"Network threat intelligence\",\"Self-serve data export and same-day deletion in the dashboard\",\"Session-based conversation tracking\"],\"screenshot\":\"https://safeprompt.dev/og-image-v3.png\",\"softwareVersion\":\"1.0\",\"creator\":{\"@id\":\"https://safeprompt.dev/#organization\"},\"offers\":[{\"@type\":\"Offer\",\"name\":\"Free\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"description\":\"10,000 prompt validations per month. Full detection engine. Network intelligence contribution required. Instant self-serve signup.\",\"eligibleQuantity\":{\"@type\":\"QuantitativeValue\",\"value\":10000,\"unitText\":\"validations per month\"}},{\"@type\":\"Offer\",\"name\":\"Starter\",\"price\":\"29\",\"priceCurrency\":\"USD\",\"description\":\"500,000 prompt validations per month. IP-based threat intelligence. Intelligence opt-out. Same detection engine as all tiers.\",\"priceSpecification\":{\"@type\":\"UnitPriceSpecification\",\"price\":\"29\",\"priceCurrency\":\"USD\",\"unitText\":\"month\"}},{\"@type\":\"Offer\",\"name\":\"Business\",\"price\":\"99\",\"priceCurrency\":\"USD\",\"description\":\"1,000,000 prompt validations per month. Priority email support. Custom whitelist and blacklist phrases (100 each). Dedicated support. Custom rate limits.\",\"priceSpecification\":{\"@type\":\"UnitPriceSpecification\",\"price\":\"99\",\"priceCurrency\":\"USD\",\"unitText\":\"month\"}}]}8:X\n0:{\"P\":null,\"c\":[\"\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/15c8en3c4du_u.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0s7lidlvw6rqe.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://api.safeprompt.dev\"}],[\"$\",\"link\",null,{\"rel\":\"ai-catalog\",\"href\":\"/.well-known/ai-catalog.json\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/geist-latin-wght.woff2\",\"as\":\"font\",\"type\":\"font/woff2\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/geist-mono-latin-wght.woff2\",\"as\":\"font\",\"type\":\"font/woff2\",\"crossOrigin\":\"anonymous\"}]]}],[\"$\",\"body\",null,{\"className\":\"bg-background text-foreground min-h-screen\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$2\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"@id\\\":\\\"https://safeprompt.dev/#website\\\",\\\"url\\\":\\\"https://safeprompt.dev\\\",\\\"name\\\":\\\"SafePrompt\\\",\\\"description\\\":\\\"Prompt injection detection API for AI developers. One API call protects your AI app from manipulation attacks.\\\",\\\"publisher\\\":{\\\"@id\\\":\\\"https://safeprompt.dev/#organization\\\"},\\\"potentialAction\\\":{\\\"@type\\\":\\\"SearchAction\\\",\\\"target\\\":{\\\"@type\\\":\\\"EntryPoint\\\",\\\"urlTemplate\\\":\\\"https://safeprompt.dev/blog?q={search_term_string}\\\"},\\\"query-input\\\":\\\"required name=search_term_string\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$3\"}}],\"$L4\",\"$L5\"]}]]}]]}],{\"children\":[\"$L6\",{\"children\":[\"$L7\",{}
1,null,false,null]},null,false,\"$8\"]},null,false,null],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[\"$Lb\"]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"GJoYeTdopelb7qYCncQEb\"}\nc:I[87180,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"default\"]\nd:I[42045,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"default\"]\ne:I[31882,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"default\"]\n18:I[19400,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"ViewportBoundary\"]\n1a:I[19400,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"MetadataBoundary\"]\n1b:\"$Sreact.suspense\"\n4:[\"$\",\"div\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n5:[\"$\",\"$Le\",null,{}]\n6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Ld\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nf:Tbb4,M14.3718 3.85059C14.4271 3.8521 14.4002 3.84502 14.451 3.88327C14.4905 3.99381 14.4707 4.77377 14.4646 4.91079C14.4088 6.17107 14.6074 17.9801 14.316 18.2402C13.9123 18.2364 11.3741 16.3216 10.9144 15.9846C10.5749 15.7357 9.87834 15.0228 9.6501 14.6373C9.48514 14.3587 9.36913 14.0539 9.30705 13.7362C9.2095 13.2122 9.16975 10.7128 9.29612 10.2216C8.77579 10.3207 7.81853 10.5153 7.36333 10.7474C7.35831 11.4883 7.54753 12.3156 7.59771 13.0605C7.675 14.2076 7.86652 15.1909 8.17996 16.2966C8.67883 18.0565 9.28125 19.7591 10.3937 21.238C10.9052 21.918 11.3902 22.5183 11.9579 23.1525C12.3703 23.6137 12.8168 24.0432 13.2937 24.4373C13.5871 24.6827 14.1488 25.0679 14.3617 25.3499L14.3696 25.3605C14.389 25.6388 14.3274 27.1474 14.1607 27.2742C13.7225 27.2619 11.2339 24.8035 10.8075 24.3545C9.65525 23.1412 8.70149 21.8249 7.95533 20.3223C7.59199 19.5515 7.05799 18.7286 6.78262 17.9217C6.35732 16.6756 6.11933 15.2383 5.92762 13.9373C5.84049 13.346 5.86528 12.7298 5.81757 12.1443C5.75423 11.3671 5.69867 10.6014 5.72061 9.82334C6.32121 9.29881 9.3073 8.37298 10.2072 8.20931C10.4879 8.15824 10.8965 8.14227 11.1955 8.13614C11.2677 8.96879 11.1279 13.4698 11.2951 13.7878C11.4721 14.1245 12.1459 14.646 12.4787 14.8236C12.5754 14.8752 12.6897 14.9064 12.7942 14.9391C12.8333 14.0285 12.7534 12.7018 12.7389 11.75L12.6932 5.90111C12.294 5.99286 11.8647 6.06755 11.4595 6.15048C8.87466 6.67938 6.53085 7.48766 4.07879 8.4598C4.05833 8.81602 4.08674 9.41816 4.09033 9.80452C4.10081 10.9267 4.17592 12.0802 4.27618 13.198C4.32392 13.73 4.47408 14.3663 4.54034 
114.8989C4.69468 16.1397 4.96509 17.3363 5.34786 18.5268C5.55563 19.173 6.01911 19.9913 6.28762 20.6447C6.65484 21.5384 6.91903 22.1408 7.48399 22.9278C7.56986 23.0572 7.66898 23.1755 7.75818 23.2988C9.06612 25.101 10.6906 26.5769 12.4755 27.9018C12.7087 28.0887 13.9965 29.2514 14.2952 29.0624C14.8985 28.6807 16.0295 27.7147 16.6029 27.2319C17.0523 26.8295 17.473 26.4346 17.9522 26.0641C18.9723 25.2752 20.435 24.7939 21.0283 23.5655C21.2672 23.071 21.2909 22.0346 21.0988 21.5251C20.7809 20.6714 19.4968 20.0219 18.6525 19.7732C17.6759 19.4855 16.9558 19.3439 15.985 18.9071C15.9122 18.3715 15.946 17.5825 15.9365 17.0206L15.855 13.5215C16.5759 13.63 17.169 13.8361 17.8587 14.0061C21.4257 14.8854 25.7785 15.8502 26.905 19.8986C27.4058 21.7703 27.153 23.7637 26.2008 25.451C25.4429 26.7967 24.4355 27.6604 23.0708 28.3686C21.6508 29.1054 20.1749 29.3294 18.6033 29.515C18.1752 29.5634 17.746 29.6017 17.3161 29.6297C17.0019 29.653 16.8007 29.663 16.4857 29.7162C15.8762 29.819 14.7022 31.1246 14.4038 31.2081C14.2029 31.1602 13.6625 30.7913 13.4643 30.6714C9.64055 28.3582 6.25293 25.1515 4.38048 21.0368C3.92218 20.0297 3.68816 18.8263 3.39481 17.7571C3.02655 16.4149 2.82133 15.1654 2.66427 13.7864C2.44371 11.6739 2.35174 9.54991 2.38887 7.42619C2.62765 7.1522 3.47838 6.92194 3.87447 6.75542C4.92071 6.3144 5.97989 5.90475 7.05062 5.527C8.07114 5.15665 9.18672 4.76271 10.2443 4.52128C11.594 4.21316 12.998 4.01846 14.3718 3.85059Z7:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-background text-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"clinical\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"0\",\"height\":\"0\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"style\":{\"position\":\"absolute\"},\"children\":[\"$\",\"symbol\",null,{\"id\":\"sp-mark\",\"viewBox\":\"2.3 3.8 24.9 27.4\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$f\"}],\"$L10\"]}]}],\"$L11\",\"$L12\"]}],\"$L13\",\"$L14\",\"$L15\"]}],[\"$L16\"],\"$L17\"]}]\n9:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1c\"}]}]}],null]}]\nb:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/15c8en3c4du_u.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n1d:I[54249,[\"/_next/static/chunks/0s7lidlvw6rqe.js\",\"/_next/static/chunks/3yk9utrb72ni7.js\"],\"\"]\n4d:I[19400,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"OutletBoundary\"]\n8:C\n10:[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M15.8584 3.81495C17.4501 3.81426 19.0732 3.84495 20.6061 4.32075C23.6469 5.26458 26.1776 7.96746 26.5064 11.1956C26.5231 11.3592 26.5475 11.61 26.4995 11.7655C26.0894 11.8171 24.6663 11.8013 24.1911 11.7916C23.2421 11.7723 21.8344 11.8448 20.9302 11.7412C20.6849 11.1941 20.564 10.5606 20.2747 10.0543C19.6472 8.95563 18.3672 8.34085 17.1454 8.22036C16.7725 8.18357 16.3545 8.181 15.9927 8.08431C15.9293 7.67156 15.9319 6.79588 15.9267 6.32914C15.9186 5.60611 15.8145 4.51798 15.8584 3.81495Z\"}]\n11:[\"$\",\"div\",null,{\"className\":\"cx-runhead fixed inset-x-0 top-0 z-40 flex items-center justify-between gap-u-s border-b border-clinical-hair/10 bg-clinical-bg/[.86] px-u-s py-u-2xs backdrop-blur-md sm:px-u-m lg:px-u-l\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-w-0 items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"flex-none text-clinical-accent\",\"width\":16.357664233576642,\"height\":18,\"viewBox\":\"0 0 24.9 27.4\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"use\",null,{\"href\":\"#sp-mark\"}]}],[\"$\",\"span\",null,{\"className\":\"min-w-0 truncate text-caption text-clinical-ink-soft\",\"children\":[[\"$\",\"b\",null,{\"className\":\"font-medium text-clinical-ink\",\"children\":\"SafePrompt\"}],\" · Prompt injection detection API\"]}]]}],[\"$\",\"a\",null,{\"href\":\"/#get-key\",\"className\":\"cx-lnk flex-none text-caption\",\"children\":\"Get a free API key\"}]]}]\n12:[\"$\",\"header\",null,{\"className\":\"mx-auto max-w-6xl px-u-s pt-u-m sm:px-u-m lg:px-u-l\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-end justify-between gap-u-s pb-u-xs\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"a\",null,{\"href\":\"/\",\"className\":\"flex items-center gap-2.5 no-underline\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"flex-none text-clinical-accent\",\"width\":29.080291970802918,\"height\"
1:32,\"viewBox\":\"0 0 24.9 27.4\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"use\",null,{\"href\":\"#sp-mark\"}]}],[\"$\",\"span\",null,{\"className\":\"text-display-sm leading-none tracking-tight text-clinical-ink\",\"children\":\"SafePrompt\"}]]}],[\"$\",\"div\",null,{\"className\":\"cx-lbl cx-lbl-nc mt-1.5 text-caption\",\"children\":\"Prompt injection detection API for LLM apps and agents.\"}]]}],[\"$\",\"nav\",null,{\"aria-label\":\"Primary\",\"className\":\"flex flex-wrap items-center gap-x-u-s gap-y-2\",\"children\":[[\"$\",\"a\",\"Playground\",{\"href\":\"/playground\",\"className\":\"border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Playground\"}],[\"$\",\"a\",\"Docs\",{\"href\":\"https://docs.safeprompt.dev\",\"className\":\"border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Docs\"}],[\"$\",\"a\",\"Blog\",{\"href\":\"/blog\",\"className\":\"border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Blog\"}],[\"$\",\"a\",\"Login\",{\"href\":\"https://dashboard.safeprompt.dev/login\",\"className\":\"border-b border-transparent pb-0.5 text-ui text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Login\"}]]}]]}]}]\n13:[\"$\",\"section\",null,{\"className\":\"pt-12 pb-16 px-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto max-w-4xl\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-5xl font-bold mb-4\",\"children\":\"Prompt Injection Blog\"}],[\"$\",\"p\",null,{\"className\":\"text-xl text-muted-foreground\",\"children\":\"Real attacks, taken apart, and the code that stops them\"}]]}]}]\n14:[\"$\",\"section\",null,{\"className\":\"pb-20 px-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto max-w-4xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-8\",\"children\":[[\"$\",\"article\",\"claude-code-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/claude-code-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Claude Code Prompt Injection | The Hook That Blocks It\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"A coding agent reads files, fetched pages and command output. See the three doors an injection walks through, and the hook that denies the poisoned file.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Claude Code\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Claude Code\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Indirect Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indirect Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}],[\"$\",\"article\",\"openclaw-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/openclaw-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],\"$L1e\"]}]]}],\"$L1f\",\"$L20\",\"$L21\"]}]}]}],\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\",\"$L40\",\"$L41\",\"$L42\",\"$L43\",\"$L44\",\"$L45\",\"$L46\",\"$L47\",\"$L48\"]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"15:[\"$\",\"div\",null,{\"className\":\"clinical\",\"children\":[\"$\",\"footer\",null,{\"className\":\"border-t border-clinical-hair/10 py-u-xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-u-s sm:px-u-m lg:px-u-l\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 gap-u-m sm:grid-cols-3 lg:grid-cols-[1.4fr_repeat(4,minmax(0,1fr))]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"col-span-2 sm:col-span-3 lg:col-span-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2.5\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"flex-none text-clinical-accent\",\"width\":27.26277372262774,\"height\":30,\"viewBox\":\"0 0 24.9 27.4\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"children\":[\"$\",\"use\",null,{\"href\":\"#sp-mark\"}]}],[\"$\",\"span\",null,{\"className\":\"text-display-sm leading-none tracking-tight text-clinical-ink\",\"children\":\"SafePrompt\"}]]}],[\"$\",\"p\",null,{\"className\":\"cx-lbl cx-lbl-nc mt-u-2xs text-caption\",\"children\":\"Prompt injection detection API for LLM apps and agents.\"}],[\"$\",\"p\",null,{\"className\":\"mt-u-2xs text-caption\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/ianreboot/safeprompt\",\"className\":\"text-clinical-ink-soft no-underline hover:text-clinical-ink\",\"children\":\"GitHub\"}],[\"$\",\"span\",null,{\"className\":\"text-clinical-ink-mute\",\"children\":\" · \"}],[\"$\",\"a\",null,{\"href\":\"https://www.npmjs.com/package/safeprompt\",\"className\":\"text-clinical-ink-soft no-underline hover:text-clinical-ink\",\"children\":\"npm\"}]]}]]}],[[\"$\",\"div\",\"Resources\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"cx-lbl text-caption\",\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"className\":\"mt-u-2xs list-none space-y-1.5 p-0\",\"children\":[[\"$\",\"li\",\"Documentation\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://docs.safeprompt.dev\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Documentation\"}]}],[\"$\",\"li\",\"API Reference\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://docs.safeprompt.dev/api-reference\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"API Reference\"}]}],[\"$\",\"li\",\"Quick Start\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://docs.safeprompt.dev/quick-start\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Quick Start\"}]}],[\"$\",\"li\",\"Blog\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/blog\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Blog\"}]}]]}]]}],[\"$\",\"div\",\"Product\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"cx-lbl text-caption\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"mt-u-2xs list-none space-y-1.5 p-0\",\"children\":[[\"$\",\"li\",\"Pricing\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/pricing\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Pricing\"}]}],[\"$\",\"li\",\"Playground\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/playground\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Playground\"}]}],[\"$\",\"li\",\"AI Agent Security\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/agent-security\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"AI Agent Security\"}]}],[\"$\",\"li\",\"Dashboard\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://dashboard.safeprompt.dev\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Dashboard\"}]}],\"$L49\"]}]]}],\"$L4a\",\"$L4b\"]]}],\"$L4c\"]}]}]}]\n16:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3
1yk9utrb72ni7.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n17:[\"$\",\"$L4d\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@4e\"}]}]\n1e:[\"$\",\"span\",null,{\"children\":\"9 min read\"}]\n1f:[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"OpenClaw Prompt Injection | The Sandbox Is Off by Default\"}]\n20:[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"An OpenClaw agent reads channels, documents, logs and Moltbook posts before it acts. Three 2026 disclosures, the sandbox default, and where the check goes.\"}]\n21:[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"OpenClaw\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OpenClaw\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Indirect Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indirect Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]\n22:[\"$\",\"article\",\"vibe-coded-app-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/vibe-coded-app-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Vibe Coding Security | Close the Injection Gap in Ten Lines\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"A generated app checks the shape of an input and trusts the words inside it. See the three inputs that carry instructions, and one ten-line check for them.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Vibe Coding\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Vibe Coding\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Node.js\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Node.js\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n23:[\"$\",\"article\",\"hermes-agent-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/hermes-agent-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Hermes Agent Prompt Injection | The Four Inputs It Reads\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Hermes Agent reads web pages, MCP tool results, files and chat messages. See the four injection paths, three tested payloads, and where the check goes.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Hermes Agent\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Hermes Agent\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"MCP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"MCP\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n4f:I[18516,[\"/_next/static/chunks/0s7lidlvw6rqe.js\"],\"IconMark\"]\n24:[\"$\",\"article\",\"grok-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/grok-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Grok Prompt Injection | Three Bots, One Attack Surface\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Grok on X, Grok Bot and your own Grok API app all read text you did not write. See the 3 injection paths, a real payload and verdict, and where to check.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Grok\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Grok\"}],[\"$\",\"span\",\"xAI\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"xAI\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n25:[\"$\",\"article\",\"indirect-injection-ai-agents\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/indirect-injection-ai-agents\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Indirect Injection in AI Agents | Two Leaks, One Root Cause\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"The attack rides in through the data an agent reads, an email, a support ticket, a retrieved document, not the prompt you type. How EchoLeak and the Supabase MCP leak 
1worked, and how to stop the class.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Indirect Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indirect Prompt Injection\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"RAG Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"RAG Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"26:[\"$\",\"article\",\"mcp-security-guide\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/mcp-security-guide\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"MCP Security | Four Ways a Tool Can Hijack Your Agent\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"MCP gives an agent many inputs it did not write: tool descriptions, tool results, retrieved documents. This guide covers the four injection vectors, why platform-native guardrails miss them, and how to validate every tool input in one call.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"MCP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"MCP\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n27:[\"$\",\"article\",\"safeprompt-langchain-python\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/safeprompt-langchain-python\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"LangChain Python Prompt Injection | One Callback Handler\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Stop wrapping every invoke() by hand. The safeprompt-langchain callback handler validates every prompt and tool output in your LangChain Python app automatically, including the indirect-injection surface a chat-box filter never sees.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"LangChain\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"LangChain\"}],[\"$\",\"span\",\"Python\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Python\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n28:[\"$\",\"article\",\"pdf-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/pdf-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"PDF Prompt Injection | The Invoice That Hijacks Your AI\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"We hid one line of white text in an invoice PDF and the AI summarizing it obeyed. The attack rides in through the upload box, not the chat box, so a chat-input filter never sees it. Here is the attack and how SafePrompt blocks it.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Indirect Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indirect Prompt Injection\"}],[\"$\",\"span\",\"Hidden Text\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Hidden Text\"}],[\"$\",\"span\",\"RAG Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"RAG Security\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n29:[\"$\",\"article\",\"chipotle-pepper-ai-abuse\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/chipotle-pepper-ai-abuse\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Chipotle AI Bot Abuse | How a Support Bot Wrote Free Code\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"People turned Chipotle's support chatbot \\\"Pepper\\\" into a free coding assistant, then shipped a whole AI agent on top of it. Here is what happened, why it matters, and which parts of it are the attack class SafePrompt is designed to detect.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Jailbreak\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Jailbreak\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Incident Analysis\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Incident Analysis\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Chatbot Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Chatbot Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n2a:[\"$\",\"article\",\"best-prompt-injection-detection-tools\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/best-prompt-injection-detection-tools\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"14 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection Tools | 6 Options Ranked for Developers\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Six tools compared on where each one runs, what it costs, and which projects are still maintained. Two of the six repositories are archived.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Comparison\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Comparison\"}],[\"$\",\"span\",\"LLM Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"LLM Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n2b:[\"$\",\"article\",\"nodejs-openai-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/nodejs-openai-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"11 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Node.js Prompt Injection | Validate Before You Call GPT-4o\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Add prompt injection protection between your Node.js app and OpenAI in about 20 minutes. Express middleware, streaming validation, multi-turn session detection. Works with GPT-4, GPT-4o, any OpenAI model.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Node.js\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Node.js\"}],[\"$\",\"span\",\"OpenAI\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OpenAI\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"2c:[\"$\",\"article\",\"azure-prompt-shields-alternative\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/azure-prompt-shields-alternative\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Azure Prompt Shields Alternative | Cost and Lock-In Compared\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Azure Prompt Shields needs a subscription, a Content Safety resource and a region, and bills per 1,000 text records. What it returns, and what costs less.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Azure Prompt Shields\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Azure Prompt Shields\"}],[\"$\",\"span\",\"GuardrailsAI\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"GuardrailsAI\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Comparison\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n2d:[\"$\",\"article\",\"detect-prompt-injection-nodejs\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/detect-prompt-injection-nodejs\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"12 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Detect Prompt Injection | Node and Python in Five Minutes\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Step-by-step guide to detecting prompt injection in Node.js and Python apps. Includes Express middleware, FastAPI integration, and production code examples. Fix in about 20 minutes with one API call.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Node.js\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Node.js\"}],[\"$\",\"span\",\"Python\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Python\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n2e:[\"$\",\"article\",\"langchain-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/langchain-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"LangChain Prompt Injection | Check Before invoke() Runs\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"LangChain apps have 66-84% attack success rates. Learn how to protect LangChain chains, LangGraph agents, and RAG pipelines from prompt injection with working Python and TypeScript code.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"LangChain\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"LangChain\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n2f:[\"$\",\"article\",\"claude-mcp-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/claude-mcp-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Claude MCP Prompt Injection | Tool Returns Are Input Too\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"One malicious file can hijack your Claude MCP agent. Learn how indirect prompt injection exploits MCP tool calls, with TypeScript and Python code to validate inputs and tool outputs.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"MCP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"MCP\"}],[\"$\",\"span\",\"Claude\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Claude\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n30:[\"$\",\"article\",\"indirect-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/indirect-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"11 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Indirect Prompt Injection | Four Doors Into Your AI\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Indirect prompt injection hides malicious instructions in documents, web pages, and emails that your AI retrieves. Affects all RAG pipelines. Detect it with the same API call as direct injection.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Indirect Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indirect Prompt Injection\"}],[\"$\",\"span\",\"RAG Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"RAG Security\"}],[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n31:[\"$\",\"article\",\"nextjs-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/nextjs-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Next.js Prompt Injection | App Router, Actions, AI SDK\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Protect Next.js AI routes, Server Actions, and Vercel AI SDK useChat streams from prompt injection. Includes App Router middleware pattern and streaming validation examples.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Next.js\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Next.js\"}],[\"$\",\"span\",\"Vercel AI SDK\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Vercel AI SDK\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"32:[\"$\",\"article\",\"owasp-llm01-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/owasp-llm01-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"OWASP LLM01 Prompt Injection | The Seven Mitigations\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"OWASP ranks prompt injection as the #1 LLM security risk. Learn what LLM01 means, why a Chevrolet chatbot agreed to a one-dollar sale, and how SafePrompt maps to each OWASP recommended mitigation.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"OWASP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OWASP\"}],[\"$\",\"span\",\"LLM01\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"LLM01\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Compliance\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Compliance\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n33:[\"$\",\"article\",\"system-prompt-extraction\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/system-prompt-extraction\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"System Prompt Extraction | How Attackers Steal Your Rules\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"\\\"Repeat your system prompt.\\\" One sentence can expose your entire AI configuration. Learn how extraction attacks work and why system prompt hardening alone doesn't stop them.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"System Prompt\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"System Prompt\"}],[\"$\",\"span\",\"Prompt Extraction\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Extraction\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Data Protection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Data Protection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n34:[\"$\",\"article\",\"rag-security-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/rag-security-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"11 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"RAG Security | Four Layers Against a Poisoned Document\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Every document in your RAG pipeline is a potential attack vector. Learn the four-layer RAG security model with code for LlamaIndex, LangChain RAG, and raw vector DB pipelines.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"RAG\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"RAG\"}],[\"$\",\"span\",\"Vector Database\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Vector Database\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n35:[\"$\",\"article\",\"litellm-supply-chain-attack-ai-security\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/litellm-supply-chain-attack-ai-security\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"LiteLLM prompt injection and the poisoned package: what was actually hit\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"The LiteLLM PyPI supply chain attack stole API keys from thousands of developers. We break down what happened, which parts are the attack class SafePrompt is designed to detect, and why AI security needs more than one layer.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Supply Chain\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Supply Chain\"}],[\"$\",\"span\",\"Incident Analysis\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Incident Analysis\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n36:[\"$\",\"article\",\"ai-security-api-standard\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/ai-security-api-standard\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"AI API Security | Why There Is Still No Standard Spec\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Databases have SQL. Auth has OAuth. AI security has no standard API, which creates dangerous vendor lock-in for a security-critical layer. Here's what the standard should look like.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"API Standard\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"API Standard\"}],[\"$\",\"span\",\"Thought Leadership\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Thought Leadership\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n37:[\"$\",\"article\",\"prompt-injection-attack-examples\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/prompt-injection-attack-examples\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"11 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection 
1Examples | Real Payloads and Verdicts\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Concrete prompt injection attack payloads across 6 categories: direct override, role manipulation, system prompt extraction, data exfiltration, hidden text injection, and multi-turn attacks. Test each one free.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Attack Examples\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Attack Examples\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"38:[\"$\",\"article\",\"what-is-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/what-is-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"12 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"What Is Prompt Injection? The #1 AI Security Risk Explained\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Prompt injection is a security attack where malicious inputs manipulate AI systems to ignore instructions. Learn how it works, real incidents (Chevrolet, Air Canada), and how to protect your apps.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"OWASP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OWASP\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n39:[\"$\",\"article\",\"owasp-top-10-llm-explained\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/owasp-top-10-llm-explained\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"15 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"OWASP Top 10 for LLMs | Ten Risks, a Named Case Each\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Complete guide to the OWASP Top 10 security risks for AI applications. Covers prompt injection (#1), data leakage, supply chain attacks, and how to mitigate each risk.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"OWASP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OWASP\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Compliance\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Compliance\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n3a:[\"$\",\"article\",\"prompt-injection-vs-jailbreaking\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/prompt-injection-vs-jailbreaking\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"6 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection vs Jailbreaking | One Sits Inside the Other\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Prompt injection overrides system instructions. Jailbreaking bypasses safety filters. Learn the distinction, with examples of each attack type and how SafePrompt detects both.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Jailbreaking\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Jailbreaking\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n3b:[\"$\",\"article\",\"ai-agent-prompt-injection-risks\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/ai-agent-prompt-injection-risks\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"AI Agent Security | When an Injection Becomes an Action\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"AI agents with tool access face 66-84% attack success rates. Learn how MCP, LangChain, and AutoGPT agents are vulnerable to prompt injection and how to protect them.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"AI Agents\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Agents\"}],[\"$\",\"span\",\"MCP\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"MCP\"}],[\"$\",\"span\",\"LangChain\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"LangChain\"}],[\"$\",\"span\",\"Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n3c:[\"$\",\"article\",\"prompt-injection-vs-sql-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/prompt-injection-vs-sql-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection vs SQL Injection | No Prepared Statement\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Compare prompt injection and SQL injection attacks. Both exploit instruction-data confusion, but prompt injection has no equivalent to parameterized queries.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"SQL Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"SQL Injection\"}],[\"$\",\"span\",\"Security Comparison\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Security Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n3d:[\"$\",\"article\",\"test-ai-app-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/test-ai-app-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Test Your AI App for Prompt Injection | The Four-Pass Method\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Step-by-step guide to testing AI applications for prompt injection. Covers manual testing, automated red-teaming tools, and SafePrompt's playground.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Testing\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Testing\"}],[\"$\",\"span\",\"Security Assessment\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Security Assessment\"}],[\"$\",\"span\",\"Red Teaming\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Red Teaming\"}],[\"$\",\"span\",\"Playground\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Playground\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"3e:[\"$\",\"article\",\"prompt-injection-protection-side-projects\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/prompt-injection-protection-side-projects\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"5 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection Protection for Side Projects | 20 Minutes\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Yes. Side projects are especially vulnerable because you don't have a security team. Learn why small AI apps need protection and how to add it in about 20 minutes.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Side Projects\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Side Projects\"}],[\"$\",\"span\",\"Indie Developer\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Indie Developer\"}],[\"$\",\"span\",\"Free Tier\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Free Tier\"}],[\"$\",\"span\",\"Getting Started\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Getting Started\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n3f:[\"$\",\"article\",\"chrome-extension-launch\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/chrome-extension-launch\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"5 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Prompt Injection Chrome Extension | See the Hidden Text\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"The SafePrompt Chrome Extension is now live on the Chrome Web Store. Detect hidden text attacks and prompt injection in real-time while browsing. Free to install and use.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Chrome Extension\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Chrome Extension\"}],[\"$\",\"span\",\"Browser Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Browser Security\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n40:[\"$\",\"article\",\"openclaw-ai-guide\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/openclaw-ai-guide\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"18 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"OpenClaw AI Guide | Features, Moltbook and Shell Access\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Everything you need to know about OpenClaw AI - the open-source personal AI assistant. Covers features, Moltbook integration, agent-to-agent security risks, and essential do's and don'ts for safe usage.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"OpenClaw AI\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"OpenClaw AI\"}],[\"$\",\"span\",\"AI Assistant\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Assistant\"}],[\"$\",\"span\",\"Open Source\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Open Source\"}],[\"$\",\"span\",\"Security Guide\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Security Guide\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n41:[\"$\",\"article\",\"hidden-text-injection-attacks\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/hidden-text-injection-attacks\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"12 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Hidden Text Injection | 16 Tricks Your Eyes Never See\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Learn how attackers use 16+ CSS and HTML techniques to hide malicious instructions from humans while manipulating AI assistants. Includes live demos and protection strategies.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Hidden Text\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Hidden Text\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n42:[\"$\",\"article\",\"hidden-text-injection-demo\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/hidden-text-injection-demo\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"5 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Hidden Text Injection Demo | Watch Three AIs Fall for It\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Controlled demo pages showing hidden text your eyes skip and your AI reads. Open one, ask any AI to summarise it, and watch the injected instruction take over.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Hidden Text\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Hidden Text\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Demo\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Demo\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n43:[\"$\",\"article\",\"how-to-prevent-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/how-to-prevent-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"How to Prevent Prompt Injection | Three Ways, One Winner\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"The complete guide to protecting AI applications from prompt injection. Covers DIY approaches, security APIs, and real implementation examples.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Prevention\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prevention\"}],[\"$\",\"span\",\"Developer Guide\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Developer Guide\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"44:[\"$\",\"article\",\"lakera-alternative\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/lakera-alternative\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Lakera Guard pricing, and the self-serve alternative to it\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"An honest comparison of SafePrompt and Lakera Guard for prompt injection protection. Pricing, features, and use cases for each.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Comparison\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Comparison\"}],[\"$\",\"span\",\"Lakera\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Lakera\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n45:[\"$\",\"article\",\"why-regex-fails-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/why-regex-fails-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"9 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Why Regex Fails for Prompt Injection Detection\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Technical analysis of why regex-based prompt injection filters fail. Includes bypass examples and better alternatives.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Regex\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Regex\"}],[\"$\",\"span\",\"Detection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Detection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n46:[\"$\",\"article\",\"safeprompt-gpt-protection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/safeprompt-gpt-protection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"12 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Custom GPT Security | Stop Yours Being Talked Off-Script\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Real incidents like Chevrolet's one-dollar-sale chatbot and Air Canada's lawsuit prove chatbot security matters. Learn how SafePrompt's GPT plugin stops jailbreaks, data leaks, and brand damage. Interactive demos included.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"ChatGPT\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"ChatGPT\"}],[\"$\",\"span\",\"GPT Plugin\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"GPT Plugin\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n47:[\"$\",\"article\",\"stop-chatbot-prompt-injection\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/stop-chatbot-prompt-injection\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"How to Stop Chatbot Prompt Injection Attacks\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Prevent chatbots from being manipulated to make unauthorized promises, leak data, or damage reputation. Includes real attack examples and 20-minute protection setup.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}],[\"$\",\"span\",\"Protection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Protection\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n48:[\"$\",\"article\",\"prevent-ai-email-attacks\",{\"className\":\"bg-card rounded-lg p-8 border border-border/50 hover:shadow-lg transition\",\"children\":[\"$\",\"$L1d\",null,{\"href\":\"/blog/prevent-ai-email-attacks\",\"children\":[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-user w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"975kel\",{\"d\":\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"}],[\"$\",\"circle\",\"17ys0d\",{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"Ian Ho\"}]]}],[\"$\",\"span\",null,{\"children\":\"•\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold hover:text-primary transition\",\"children\":\"Invisible text in Gmail: how a contact form hijacks your AI summary\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Fix Gmail hack attacks by validating contact forms with prompt injection detection. Simple API integration stops invisible text exploits in about 20 minutes. Free tier available.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",\"Prompt Injection\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Prompt Injection\"}],[\"$\",\"span\",\"Gmail Hack\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"Gmail Hack\"}],[\"$\",\"span\",\"AI Security\",{\"className\":\"px-3 py-1 bg-card rounded-full text-xs\",\"children\":\"AI Security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1 text-primary\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right w-4 h-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]}]\n49:[\"$\",\"li\",\"Chrome Extension\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://chromewebstore.google.com/detail/safeprompt-ai-prompt-inje/njifehhikfacodbgkklcdheapkemkbep\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Chrome Extension\"}]}]\n4a:[\"$\",\"div\",\"Company\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"cx-lbl text-caption\",\"children\":\"Company\"}],[\"$\",\"ul\",null,{\"className\":\"mt-u-2xs list-none space-y-1.5 p-0\",\"children\":[[\"$\",\"li\",\"About\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/about\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"About\"}]}],[\"$\",\"li\",\"FAQ\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/faq\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"FAQ\"}]}],[\"$\",\"li\",\"Limitations\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/limitations\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Limitations\"}]}],[\"$\",\"li\",\"Contact\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/contact\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Contact\"}]}]]}]]}]\n4b:[\"$\",\"div\",\"Legal\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"cx-lbl text-caption\",\"children\":\"Legal\"}],[\"$\",\"ul\",null,{\"className\":\"mt-u-2xs list-none space-y-1.5 p-0\",\"children\":[[\"$\",\"li\",\"Terms of Service\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/terms\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Terms of Service\"}]}],[\"$\",\"li\",\"Privacy Policy\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/privacy\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Privacy Policy\"}]}],[\"$\",\"li\",\"Security \u0026 Data Handling\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/security\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Security \u0026 Data Handling\"}]}],[\"$\",\"li\",\"Add us as a preferred source on Google\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.google.com/preferences/source?q=safeprompt.dev\",\"rel\":\"noopener\",\"target\":\"_blank\",\"className\":\"border-b border-transparent text-caption text-clinical-ink-soft no-underline transition-colors hover:border-clinical-accent hover:text-clinical-ink\",\"children\":\"Add us as a preferred source on Google\"}]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"4c:[\"$\",\"div\",null,{\"className\":\"mt-u-m border-t border-clinical-hair/10 pt-u-s\",\"children\":[[\"$\",\"p\",null,{\"className\":\"cx-mono text-caption text-clinical-ink-mute\",\"children\":\"© 2026 SafePrompt by Reboot, Inc. All rights reserved.\"}],[\"$\",\"p\",null,{\"className\":\"cx-mono mt-u-2xs text-caption text-clinical-ink-mute\",\"children\":\"Prompt injection detection API for LLM apps and agents.\"}]]}]\n19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n1c:[[\"$\",\"title\",\"0\",{\"children\":\"AI Security Blog | Prompt Injection Guides and Research\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Practical guides on prompt injection prevention, OWASP LLM risks, detection techniques, and real-world AI security incidents. Written for developers.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"SafePrompt\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"prompt injection detection, prompt injection API, AI security, LLM security, chatbot protection, free prompt injection, jailbreak prevention, prompt injection firewall\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"5\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://safeprompt.dev/blog\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:title\",\"content\":\"AI Security Blog | Prompt Injection Guides and Research\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:description\",\"content\":\"Practical guides on prompt injection prevention, OWASP LLM risks, detection techniques, and real-world AI security incidents. Written for developers.\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:title\",\"content\":\"SafePrompt: Prompt Injection Detection API | One POST Request\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:description\",\"content\":\"Prompt injection detection API. One POST call returns safe/unsafe with a confidence score. Free tier: 10,000 free validations a month; paid from $29/month.\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:image\",\"content\":\"https://safeprompt.dev/og-image-v3.png\"}],[\"$\",\"link\",\"14\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"16\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L4f\",\"17\",{}]]\n4e:null\n"])</script>
1</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.