the blog
What AI leaves open.
Plain-English writing on the security holes AI coding tools leave behind, and how to close them.
February 22, 2026 · 4 min read
The Automation That Wired Two Apps Together Was Also Wiring In Anyone Who Found the Link
A client's no-code automation connected a form to a spreadsheet in an afternoon. Nobody thought of it as part of the app's security surface, until I actually looked at what the connection allowed.
Read itFebruary 21, 2026 · 4 min read
"It's Encrypted" Answers a Different Question Than "Who Can Read It"
Encryption at rest is real protection against one specific scenario: someone stealing your physical storage or backup files. It has nothing to do with whether your own app hands the same data to the wrong logged-in user.
Read itFebruary 20, 2026 · 4 min read
Someone Asked You to Delete Their Data. Can Your App Actually Do That?
Hiding a row and actually deleting someone's data are two different things, and most fast-built apps only do the first one without anyone noticing the difference.
Read itFebruary 19, 2026 · 4 min read
The Checklist for Any App With Its Own AI Chat or Agent Feature
If you've added an AI assistant to your own app, the usual security checklist still applies, plus a shorter, newer one specific to features that read and act on plain-English content.
Read itFebruary 18, 2026 · 5 min read
If Your App Has an AI Chat Feature, It Has a New Kind of Input to Worry About
A support chatbot, an AI assistant inside your app, anything that reads text and acts on it opens a door that didn't exist before AI features became common: instructions hidden inside content that was never supposed to be a command.
Read itFebruary 17, 2026 · 4 min read
Checking Your Own App vs Bringing In Someone Who Didn't Build It
Both have real value. They catch different things, for the exact same reason a writer benefits from an editor even after reading their own draft twenty times.
Read itFebruary 16, 2026 · 4 min read
What Should Actually Be in Writing About Security Before a Freelancer Starts Building?
Most freelance contracts cover scope, payment, and timeline in detail, then say nothing at all about who's responsible for checking the app is safe. That silence is a decision too, it's just an accidental one.
Read itFebruary 15, 2026 · 4 min read
Six Weeks Into 2026: What I've Actually Noticed So Far
No single big incident this month. Just the same handful of quiet mistakes, showing up in more places, because more people are building than ever before.
Read itFebruary 14, 2026 · 4 min read
How to Actually Check Whether Your Webhook Endpoint Verifies Anything at All
A webhook endpoint that works when your payment processor calls it might also work when anyone else calls it, pretending to be your payment processor. Here's a five-minute way to find out which one you built.
Read itFebruary 13, 2026 · 4 min read
v0 Builds Beautiful Interfaces. It Has Nothing to Say About What's Behind Them.
Unlike Lovable, Bolt, or Replit, v0 mostly stays in the frontend. That's not a flaw, but it does mean almost none of the usual publish-time security conversation even applies to it, because the risk lives somewhere else entirely.
Read itFebruary 12, 2026 · 4 min read
The Webhook URL I Pasted Into a Screenshot Was Still Live Six Months Later
A quick integration, a screen share while debugging, and a URL I never thought of as a secret because it didn't look like one. It sat live and usable long after I'd forgotten it existed.
Read itFebruary 11, 2026 · 4 min read
"Nobody's Reported a Problem" Is Not the Same As "There Isn't One"
A quiet inbox feels like proof an app is safe. Most of the time it just means nobody who found the gap has told you about it yet, and that's a very different thing to be reassured by.
Read itFebruary 10, 2026 · 4 min read
The Checklist for Any Feature That Lets Someone Upload a File
A profile picture, a resume, an attachment. Anything your app accepts as a file upload opens a specific, well-understood set of risks that most AI-scaffolded upload features skip entirely.
Read itFebruary 9, 2026 · 4 min read
The Extra Checks That Matter Once Your App Holds Real Personal Data
A todo list app and a system holding names, emails, and health details don't carry the same risk, even if the code looks similar. Here's what deserves more attention once real personal data is involved.
Read itFebruary 8, 2026 · 5 min read
What a Broken CORS Policy Actually Lets a Stranger Do
"CORS misconfiguration" sounds like abstract technical jargon. What it actually means is a malicious site quietly making authenticated requests to your app using a real visitor's own logged-in session.
Read itFebruary 7, 2026 · 4 min read
Your AI Tool's Built-In Scanner Is Real. It Also Has a Blind Spot It Can't See Past.
A platform's own security scan can't check the one thing that matters most: whether its own scanner is missing something about its own defaults. That's a job for someone standing outside the platform.
Read itFebruary 6, 2026 · 4 min read
"My Developer Keeps Telling Me It's Fine." Should You Just Trust That?
Trusting a person and verifying a claim aren't the same thing, and asking for specifics isn't the same as being suspicious of someone. Here's how to tell the difference without knowing how to code.
Read itFebruary 5, 2026 · 4 min read
An AI-Agent Social Network Launched Four Days Ago. It's Already the Newest Example of the Same Old Mistake.
Moltbook launched January 28. By February 2, researchers had found roughly 1.5 million exposed auth tokens and 35,000 emails, sitting behind the exact same missing setting that's caused nearly every story like this for a year now.
Read itFebruary 4, 2026 · 4 min read
"It Was Working Fine" Isn't the Same As "It's Still Safe"
Every project you build with an AI coding tool pulls in dozens of packages you never chose by name. Here's a free, five-minute check for whether any of them have a known problem.
Read itFebruary 3, 2026 · 5 min read
Replit Will Scan Your Code. It Won't Stop Its Own Agent From Deleting Your Database.
Replit has real, useful security scanning built in. It also had a very public reminder last year that a coding agent with too much unsupervised access is its own category of risk, separate from code quality entirely.
Read it