Scope: validate the project key/DSN on every error ingest (handleValidateApiKey('error-tracking')) and resolve siteId from the key, not the body. Rate-limit + reject missing/invalid keys with 401.
Done when: ingest is keyed end-to-end and an attacker can't inject errors into a project without its key.