Skip to main content
OnPageIQ Documentation

Tenant Isolation Testing

Mandatory cross-org tests: Org A data must never leak to Org B.

User goal

Prove multi-tenant boundaries hold on every new endpoint.

Tier
All releases
Nav label
N/A
Route
/projects/{project}
Gates

QA focus

  • IDOR on every new route
  • API tokens scoped to org
  • Jobs receive organization_id in payload

Overview

Tenant isolation is mandatory on every release. Org A data must never leak to Org B — treat IDOR checks as non-optional on new endpoints.

What you get

  • Clear tenant key: organization_id
  • Policy rule: compare user.organization_id to model.organization_id
  • Coverage targets: web routes, API tokens, and jobs that carry org context

How it works

  • Never accept organization_id from the client on writes
  • Log in as Org B and probe Org A project/scan IDs — expect 403/404 with no leaked body
  • Confirm API tokens are org-scoped and jobs receive organization_id in their payload

Interactive guide

Step of

All steps (reference)

  1. Step 1. Cross-org project access

    Log in as User B; paste Org A project URL.

    What to do: GET /projects/{orgA_project_id}

    Expected (pass)

    • 403 Forbidden or 404 Not Found
    • No data from Org A in response body

    Negative cases (must fail safely)

    • 302 redirect that confirms resource exists without auth
  2. Step 2. Cross-org scan access

    Open /scans/{id} for another org’s scan.

    Expected (pass)

    • 403/404
    • No issues or URLs leaked
  3. Step 3. API token scope

    Token from Org A cannot read Org B project via API v1.

    Expected (pass)

    • 401/403 on cross-org API IDs

Related guides