Signal Atlasmodern Angular fieldbook
Angular 22 · Reactive Web ApplicationsView Markdown source

Angular frontend security and trust boundaries

The browser is an untrusted client. Angular reduces some rendering risk but cannot enforce backend authorization or protect secrets delivered to users.

XSS

Angular escapes interpolated values and sanitizes supported contexts. Avoid innerHTML; never use bypassSecurityTrust* to silence warnings without a reviewed provenance and sanitization contract.

URLs, styles, HTML, and resource URLs have different trust rules. Content Security Policy and Trusted Types add defense in depth.

Authentication and authorization

Client route guards and hidden buttons improve experience only. APIs enforce permissions and resource ownership. Avoid storing long-lived bearer tokens in JavaScript-readable storage when safer architecture is available.

CSRF and CORS

Cookie-authenticated state changes need CSRF defenses. CORS is a browser read-policy, not authentication. Configure exact trusted origins, credentials, methods, and headers.

Supply chain

Pin lockfiles, review install scripts and maintainers, scan dependencies, generate an SBOM, use trusted registries, sign artifacts, and patch supported Angular/Node/runtime versions. Tailwind and Flowbite are build/runtime dependencies with supply-chain impact.

Sensitive data

Never place secrets in environment files bundled into JavaScript. Treat logs, analytics, source maps, error reports, browser storage, SSR HTML, and Transfer State as possible disclosure paths.

Deployment headers

Set CSP, frame-ancestors, nosniff, referrer policy, permissions policy, HSTS, safe caching, and immutable hashed assets. Do not cache personalized SSR HTML publicly.

Feynman check

If the browser can use a secret, the user can inspect it. Explain why frontend code can guide authorization but never be its final authority.

Signal AtlasIndependent study material · verify version details in official project documentation