TRPCAPI

TRPC security observations

Observations from TRPC-based systems in production, where the client-server contract quietly becomes an implicit trust boundary.

TRPC is a joy to build against — the client-server contract feels compile-time-enforced. That feeling is a security assumption in disguise.

The contract is enforced on the client, not the server. Anything the client can call, an attacker can call, with any payload the network will accept. We routinely find TRPC endpoints where the runtime validation on the server relies on the same schema type used to render the UI, and where the boundary between “internal” and “external” endpoints exists only in the file layout.

Cookies

We use a minimal set of cookies to keep this site functional. Analytics cookies only with your consent. Cookie Policy.