Build October 12, 2026 · 5 min read

Is “Anyone With the Link” Safe? What I Fixed

Anyone with a Verilay report link could read it. I found they could also change it. What I fixed, what I didn’t, and three questions for your own app.


Verilay reports are shared by link. Run a scan, get a link, send it to whoever needs to see it. I like that. No account, no password, nothing to remember.

But I found out what that link quietly means. Anyone who has it can open the report. That part is on purpose. For a long time, though, anyone who had the link could also change the report. Nobody told me. I found it by going through my own report pages the way I’d go through someone else’s app.

It’s fixed now. Here’s what was wrong, what I changed, and what this does not fix.

Reading something and changing it are different permissions

You know the difference in a shared document. “Anyone with the link can view” is one setting. “Anyone with the link can edit” is another. I’d built the second one without realising, for pages that were only ever meant to be the first.

A report link is long and random, so it’s hard to guess. That’s good. But hard to guess is not the same as allowed. If knowing the link is all it takes to change a report, then everyone you send it to can change it. So can everyone they forward it to, and anyone who spots it in a screenshot.

What I found

What I changed

What this doesn’t fix

Three questions for your own AI-built app

Verilay’s AI review looks at login and access in general, but it doesn’t yet check these specific things automatically. I’m working on that. Until then, you can ask your AI builder:

  1. “For every action that changes or deletes something, what proves the person asking is allowed to?” Knowing an ID or a link isn’t proof.
  2. “Where does text that didn’t come from me end up on a page, and is it treated as plain text?” That includes what visitors type, what other systems send, and what an AI writes.
  3. “After I delete something, can I still reach it by its link, an API or a search?” Try it yourself. Delete something, then open the old address.

That last one took me far too long to try on my own tool. It’s the same lesson as the hole I found in the second fetch: the part that looks handled is the part I stop checking.

The changelog has the short version. Verilay’s code is public at github.com/ekbm/verilay. If there’s another door I haven’t found, I’d rather you told me.

Verilay is free at verilay.dev — no account needed.
Paste in a GitHub link, a ZIP from Lovable or Replit, or your live app’s address, and it will tell you in plain English what your app is made of and what’s worth worrying about. The code is public at github.com/ekbm/verilay.