🔐 Безопасность Angular в прод... Заметка
DEV Community на русском

🔐 Безопасность Angular в продакшене: как защита от XSS, DomSanitizer и CSRF работают вместе

Приложения Angular по умолчанию безопасны, причем большинство проблем безопасности возникает из-за того, что разработчики обходят эти встроенные средства защиты. Angular имеет конвейер санитарной обработки, который автоматически обрабатывает значения перед их отображением в DOM. Этот конвейер различает экранирование, санитарную обработку и доверие, причем доверие явно обходит автоматические проверки. Существует четыре различных SecurityContexts: HTML, STYLE, URL и RESOURCE_URL, каждый со своими профилями риска и обработкой. DomSanitizer используется либо для санитарной обработки ввода, либо для явного доверия к нему с использованием типов Safe*. Антипаттерн включает обход безопасности для недоверенного ввода, что немедленно вызывает тревогу при проверках безопасности. Обход безопасности иногда оправдан, но требует тщательного рассмотрения и четкого понимания рисков. Безопасное отображение Markdown без обхода санитарной обработки представлено как лучшая альтернатива. SafeResourceUrl имеет решающее значение для доверенного встраивания iframe. SafeUrl обычно не требуется для стандартных тегов якоря. Защита от CSRF в приложениях Angular является общей ответственностью между фронтендом и бэкендом. HTTP Interceptors могут выступать в качестве уровня обеспечения безопасности. Content Security Policy и Trusted Types дополнительно повышают безопасность фронтенда. В статье также затрагиваются вопросы SSR и гидратации. В конечном итоге безопасность является разделенной ответственностью между фронтендом и бэкендом. Повторяются распространенные ошибки, предоставляется контрольный список проверки безопасности в производственной среде, а в заключительных мыслях подчеркивается работа с моделью безопасности Angular.