How do you protect your n8n webhooks that are public-facing?
I've been running into this on my own client work. Chatbots, contact forms, anything where the browser hits an n8n webhook directly.
The URL is just... there. In the webpage, in the Network tab. I learned this the hard way when someone hammered my workflow. API costs jumped, systems went down, and I spent a weekend trying to figure out what happened.
I ended up duct-taping Cloudflare in the front, Redis rate limiting, and a bunch of other stuff together. It works, but honestly it was a pain setting it up for every project.
So now I'm sketching out something simpler and n8n-specific: hide the real webhook, basic abuse controls at the edge, no additional infra. Nothing is shipped yet. I'm mostly trying to see if other people actually have faced a similar problem.
If you've had exposed webhooks or abuse on public workflows, what did you do? DIY stack? n8n auth? Just live with it?
I'm trying to validate this as a new project here: ShieldHooks
Let me know what you think.