NoumenonTell me what's broken

Other users seeing your data

A signed-in account can open records that should belong only to another account.

Run this only on your own app using two accounts you control, called A and B. Put harmless test text in the record, not personal information. Start from a direct item link your interface already provides. Do not guess other people’s ids or enumerate records. One unauthorized read of your own test record is enough to establish the boundary failed.

Reviewed . Start with a two-minute check; repairs can take longer.

The two-minute check.

  1. Make the owner’s record.

    Sign in as account A and create a private test item. Open it and copy its direct page link if the app provides one. Keep the item’s id and expected owner in your notes.

  2. Try the stranger’s view.

    Open an incognito window and sign in as account B. Paste the copied test-item link. Record whether you see the private text, an access refusal or an empty result. Do not test with a real stranger’s record.

  3. Check the response as well as the screen.

    In B’s window, right-click, choose Inspect and select Network. Reload that item page. Inspect the data request’s Response. Private text returned by the server is exposed even when the interface hides it.

  4. Compare the access decision.

    In the app’s backend or database settings, locate the read rule for this collection or route. Check whether it requires the signed-in user to own the requested record. If the app has no direct item link, stop here and ask for a controlled API test.

Read the result.

WORKSA can retrieve the test record and B receives no private record content.

BROKENThe backend returns A’s private content to B, whether or not the page displays it.

Causes and fixes.

Ranked in the order to investigate, not by claimed frequency.

  1. Only the interface filters private records.

    Enforce ownership on the server or in database access rules for every private read. A list filter in the browser cannot protect data already delivered to that browser.

  2. The rule allows any signed-in user.

    Replace blanket signed-in access with the product’s actual ownership or membership condition. Verify A can still read the item and B cannot; denying everyone is not a complete repair.

  3. Privileged credentials bypass user restrictions.

    Remove administrator credentials from the client and review every server route that uses them. Those routes must perform their own authorization before returning records.

Edge cases.

  • Shared workspaces need membership checks, not necessarily a single owner field. Write down the intended sharing rule before changing access.
  • Rules that protect reads do not automatically prove writes and deletes are protected. Repeat those checks separately with disposable data after the read boundary is fixed.

When to stop and hand it over

Stop at the first confirmed cross-account disclosure and hand over the two test account ids, test record id and a redacted response. Restrict the affected feature while it is investigated. Do not continue exploring other users’ information.

Before the next attempt.

Is hiding the private page enough?

No. Check the data response under account B. The authorization boundary must act before private data reaches that account.

Can a public frontend key be safe?

Some products intentionally use public client keys. Supabase and Firebase have different rules, covered in their specific procedures below.

Related case evidence.

Notes test app / direct read BG-F-002

User B could read user A’s note by changing the requested id. The repaired test fixture passed the two-user journey. This result concerns the notes service, not a Supabase or Firebase client repair.

Official sources.

These sources document the product behavior used in this check. The diagnostic order and verdicts are Noumenon’s procedure; they are not quoted product error messages.

What's
not working?

You don't need to explain it perfectly. Tell me what you expected and what happened instead.

I'll reply personally by email.
The diagnosis is free. No commitment.

Please leave out passwords and secret keys. We can arrange a test login separately.