Every Way a Tenant Escaped: A Cross-Tenant Breakout Field Guide
Eight ways one site broke out of its sandbox on a multi-tenant PHP server, all found by attacking it on purpose, all fixed.
ePHPm can serve a directory full of sites out of one process. Point sites_dir at
a folder and every subdirectory is a virtual host. The Host header decides which one you get. That’s how the PR preview
environment runs. Every pull request gets a subdomain, and the code behind it is whatever somebody pushed. One process
holding many tenants means ePHPm enforces every per-tenant boundary itself, in-process. There’s no container wall
between site A and site B unless you add one.
