AGENT SKILL
angular-security
Security best practices for Angular (XSS, CSP, Route Guards). Use when implementing XSS protection, Content Security Policy, or auth guards in Angular. (triggers: DomSanitizer, innerHTML, bypassSecurityTrust, CSP, angular security, route guard)
- License 许可
- MIT
- 最近更新
- 2026-06-24
- Stars
- ★ 66
- Forks
- 24
01 前言 Front Matter
- name
- angular-security
- description
- Security best practices for Angular (XSS, CSP, Route Guards). Use when implementing XSS protection, Content Security Policy, or auth guards in Angular. (triggers: DomSanitizer, innerHTML, bypassSecurityTrust, CSP, angular security, route guard)
02 资源文件 4
- 参考文档evals/evals.json16.3 KB
- 参考文档references/algorithm-guide.md8.5 KB
- 参考文档references/api-reference.md6.2 KB
- 参考文档references/production-patterns.md6.7 KB
03 SKILL.md 正文
Security
Priority: P0 (CRITICAL)
Principles
- XSS Prevention: Angular sanitizes interpolated values by default — {{ userInput }} is safe. Do NOT use
innerHTMLunless absolutely necessary (e.g., trusted static CMS content). For user-generated content, display as text with {{ content }} — never as HTML. - Bypass Security: Only bypass security for content you control (e.g., trusted CMS headers). Never call bypassSecurityTrustHtml on user-provided data. Use DomSanitizer.sanitize(SecurityContext.HTML, content) instead of bypass functions. Audit every bypassSecurityTrust* call as a potential XSS vector.
- Route Guards: Protect all sensitive routes with a functional CanActivateFn (e.g., inject(Router).createUrlTree(['/login'])). Apply with canActivate: [authGuard].
Guidelines
- CSP: Configure CSP headers on the server (not in Angular source). Use nonce-based CSP with script-src 'nonce-{nonce}' and avoid unsafe-inline/unsafe-eval.
- HTTP: Use Interceptors to attach secure tokens. Use HttpOnly cookies managed by the server — not localStorage or sessionStorage because they are accessible via XSS.
- Secrets: Never store API keys or secrets in Angular source code or bundle.
Anti-Patterns
- No bypassSecurityTrust: Trust Angular's sanitization; bypass only for verified static content.
- No localStorage for tokens: Use HttpOnly cookies via interceptors for auth tokens.
- No secrets in source: Never embed API keys or secrets in Angular bundle code.
References
- Security Best Practices
- common/security-standards