Security in Angular
Angular Official Docs are pretty great! โ Security in Angular is important!
Things we should remember:
๐ Best Practices
โ Stay updated with Angular library releases.
โ Avoid altering Angular core
โ Steer clear of APIs marked โSecurity Riskโ.
๐ XSS Prevention
โ Block malicious code entry to DOM.
โ Angular treats all values as untrusted by default.
โ Sanitizes values inserted into DOM from templates.
โ Templates are trusted; avoid creating them with user input.
๐ Sanitization and Security Contexts
โ Angular sanitizes values for HTML, styles, and URLs.
โ Context-specific: HTML, Style, URL, Resource URL.
โ Development mode warnings for sanitization changes.
๐ Direct DOM API Use & Explicit Sanitization
โ Use Angular templates over direct DOM interaction.
โ For unavoidable cases, use Angular sanitization functions.
๐ Trusting Safe Values
โ Use DomSanitizer for necessary executable code or URLs.
โ Context-specific methods like bypassSecurityTrustHtml.
๐ Content Security Policy (CSP)
โ Prevents XSS via web server configuration.
โ Requires unique per-request nonces for Angular to render styles.
๐ Enforcing Trusted Types
Use HTTP headers with one of the following Angular Policies:
โ angular
โ angular#unsafe-bypass
โ angular#unsafe-jit
โ angular#bundler
๐ Server-side XSS Protection
โ Avoid creating Angular templates on the server side.
โ Use templating languages that auto-escape values.
๐ HTTP-level Vulnerabilities
โ Built-in support for CSRF/XSRF and XSSI.
โ Cooperate server and client for anti-XSRF technique.
๐ Auditing Angular Applications
โ Follow regular web app security principles.
โ Audit Angular-specific APIs marked as sensitive.
A more in-depth look can be found in Docs:
angular .dev/guide/security
Letโs get connected! You can find me on:
- Medium: https://medium.com/@nhannguyendevjs
- dev.to: https://dev.to/nhannguyendevjs
- Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
- X (formerly Twitter): https://twitter.com/nhannguyendevjs