Angular предоставляет встроенные механизмы защиты от XSS (Cross-Site Scripting) и CSRF (Cross-Site Request Forgery), что позволяет минимизировать риск атак на клиентскую и серверную часть приложения.
Автоматическое экранирование данных Angular
автоматически экранирует динамические данные, вставляемые через
интерполяцию ({{ value }}), предотвращая внедрение
скриптов.
<div>{{ userInput }}</div> <!-- Любой HTML или JS будет безопасно экранирован -->Санитизация HTML Для вставки HTML используется
сервис DomSanitizer, который позволяет явно доверять
безопасному контенту.
import { DomSanitizer } from '@angular/platform-browser';
constructor(private sanitizer: DomSanitizer) {}
getSafeHtml(html: string) {
return this.sanitizer.bypassSecurityTrustHtml(html);
}Сброс стилей и URL Для безопасной работы с CSS, URL и ресурсами Angular предоставляет методы:
bypassSecurityTrustStyle()bypassSecurityTrustUrl()bypassSecurityTrustResourceUrl()Использование токенов CSRF Angular автоматически
интегрируется с backend, который поддерживает CSRF-токены. Токен
передается через заголовок X-XSRF-TOKEN.
HttpClient и XSRF Модуль HttpClient
автоматически добавляет CSRF-токен к запросам типа POST, PUT, DELETE,
PATCH, если сервер присылает cookie с токеном.
this.http.post('/api/data', body).subscribe();Конфигурация сервера Сервер должен выдавать
токен в cookie с флагами HttpOnly и SameSite
для защиты от межсайтовых атак. Angular доверяет этому токену и
добавляет его в заголовок.
DomSanitizer только для проверенного
контента.Эти механизмы создают надежную основу для защиты приложений от распространённых веб-уязвимостей, сохраняя при этом гибкость и производительность интерфейсов.