Безопасность
Защита приложения распределена между браузером, BFF и Go. Браузер обращается к BFF на домене приложения; BFF управляет сессией и вызывает Go от имени пользователя. Две отдельные задачи — не принять подделанный запрос с чужого сайта и не исполнить пользовательский текст как код страницы.
Разделы
- CSRF — как BFF проверяет запросы, к которым браузер может приложить cookie сессии.
- XSS — как данные безопасно попадают в bootstrap и отображаются в интерфейсе.
- CSP — TODO.
Границы защиты
Cookie сессии недоступна JavaScript благодаря HttpOnly. Это ограничивает чтение секрета сессии, но не мешает браузеру отправлять cookie в запросах. Поэтому нужны отдельные проверки CSRF. Исполняющийся на странице вредоносный JavaScript может действовать от имени пользователя даже без чтения cookie — это задача защиты от XSS.
Подробности реализации, источники и границы проверки приведены на страницах CSRF и XSS. Размещение компонентов описано в архитектуре.