Skip to main content

Edge Case: Cross-Site Isolation and Data Separation

non-critical   Property: ChurchWiseAI   Category: Security Tier: all Persona: security-tester Touchpoint: /api/stripe/webhook, /api/onboard

Preconditions

  • Multiple sites live: churchwiseai.com, pewsearch.com, illustratetheword.com
  • Each site has Stripe webhooks and onboard flows

Steps

#ActionExpected Result
1Send unsigned Stripe webhook to CWA endpointAPI returns 400 or 401 (Unauthorized). Rejects webhook without valid signature.
2Send unsigned Stripe webhook to PewSearch endpointAPI returns 400 or 401. PewSearch rejects unsigned webhook.
3Send unsigned Stripe webhook to ITW endpointAPI returns 400 or 401. ITW rejects unsigned webhook.
4Send CWA Stripe webhook signature to PewSearch endpointAPI returns 400/401. Cross-site signatures are rejected.
5Send onboard request with fake church UUIDAPI returns 400-404 (church not found). Status >= 400 but < 500. Never succeeds with fake ID.
6Send onboard request with PewSearch plan key to CWAAPI returns 400 (invalid plan). CWA rejects PewSearch-only plans.
7Send onboard request with ITW product ID to CWAAPI returns 400 (invalid plan). CWA rejects ITW-only products.
8Access admin dashboard with token from different siteAPI returns 401 (Unauthorized) or redirects to login. Token from one site cannot access another.
9Send customer ID from PewSearch to CWA billing APIAPI returns 404 or 403. Cross-site customer IDs rejected.

Known Failure Modes

  • Unsigned webhooks accepted — webhook spoofing vulnerability
  • Cross-site plan keys work on wrong site — products misaligned
  • Admin token from one site works on another — auth breach
  • Customer data from one site accessible via another — data leak

References

Notes

Tests that multiple properties (CWA, PewSearch, ITW) are properly isolated. Stripe webhooks must be signed and specific to each site. Plan keys are product-specific and must be rejected if sent to wrong site. Auth tokens must not work across properties. Customer/church data from one site must not be accessible via another. This is critical for multi-tenant isolation and financial data security.