Вопрос или проблема
У нас есть Java-приложение, которое позволяет пользователям загружать вложения и сохранять их на сервере. У приложения определена политика безопасности контента (CSP), которая выглядит следующим образом:
base-uri 'self'; child-src 'self'; form-action 'self'; frame-ancestors 'self'; connect-src 'self'; font-src 'self' https://fonts.gstatic.com; frame-src 'self'; img-src 'self' http://www.google-analytics.com https://www.google-analytics.com https://ssl.google-analytics.com data:; media-src 'self'; object-src 'self'; script-src 'unsafe-inline' 'unsafe-eval' 'self' http://www.google-analytics.com https://ssl.google-analytics.com; style-src 'unsafe-inline' 'unsafe-eval' 'self'; default-src ASTERISK;
Недавно мы получили нарушение CSP, которое заключается в следующем –
<CR>csp-report:<CR> Referrer: <CR> Заблокированный источник контента: ms-appx-web://<CR> Нарушенная директива: font-src 'self' https://fonts.gstatic.com<CR> Действующая директива: font-src<CR> Код состояния: 200<CR>
Может кто-то помочь мне понять, что такое ms-appx-web и почему он оказался заблокированным контентом? Почему CSP говорит, что font-src нарушен?
У меня есть следующее понимание –
Разрешенные шрифты – это те, которые находятся внутри приложения – “SELF” и с “https://fonts-gstatic.com” .. по какой-то причине пользователь попытался прикрепить PDF-документ с шрифтом, не поддерживаемым приложением/Google Fonts. Этот шрифт может быть определен в Windows, т.е. ms-appx-web://
Правильно ли это?
ms-appx-web://
– это внутренняя схема Edge для браузерных плагинов, она не подлежит регулированию CSP. Это просто ошибка в какой-то версии Edge или в определенном плагине/расширении.
Ответ или решение
CSP (Content Security Policy) — это механизм безопасности, который помогает предотвратить атаки, такие как межсайтовый скриптинг (XSS) и кража данных, ограничивая источник ресурсов, загружаемых на веб-страницу. В вашем случае вы столкнулись с нарушением CSP, связанным с ms-appx-web://
.
Что такое ms-appx-web://
?
ms-appx-web://
является внутренним URI-схемой, используемой платформой Microsoft для работы с приложениями, которые могут работать как веб-приложения и могут взаимодействовать с универсальными приложениями Windows. Эта схема не подлежит регулированию CSP. В большинстве случаев появление этой схемы в сообщении о нарушении CSP может быть связано с ошибками в версии браузера Edge или установленными плагинами/расширениями.
Почему возникло нарушение CSP?
Ваша политика CSP разрешает загрузку шрифтов только из указанных источников:
'self'
— это текущий домен,https://fonts.gstatic.com
— это Google Fonts.
Если вы видите сообщение о нарушении CSP с заблокированным содержимым ms-appx-web://
, это указывает на то, что ваш веб-приложение, вероятно, пытается загрузить ресурс (в данном случае шрифт), который запрашивается с помощью URI ms-appx-web://
. Это может быть вызвано следующим:
-
Расширения браузера: Некоторые расширения браузера могут пытаться получить доступ к данным, используя эту схему. Если расширение использует свои шрифты или методы, которые используют
ms-appx-web://
, это приведет к нарушению CSP, так как этот источник не разрешен. -
Ошибки в браузере или приложении: Возможно, в используемой версии браузера Edge есть ошибка, которая неправильно обрабатывает или не фильтрует ресурс.
Как это связано с загружаемыми PDF-документами?
Ваше понимание о том, что ошибку мог вызвать документ PDF с неподдерживаемым шрифтом, может быть частично верным. Если PDF-файл содержит шрифт, который должен загружаться с ms-appx-web://
, ваше приложение попытается получить к нему доступ, что будет нарушать вашу CSP.
Рекомендации:
-
Проверка расширений: Убедитесь, что у пользователей на стороне клиентского устройства нет расширений, которые могли бы пытаться использовать
ms-appx-web://
. Попросите их временно отключить такие расширения и проверьте, воспроизводится ли ошибка. -
Проверка браузера: Убедитесь, что все пользователи используют последнюю стабильную версию браузера Edge. Обновления могут исправить известные ошибки.
-
Анализ шрифтов: Если у вас есть доступ к PDF-файлам, попробуйте определить, какие шрифты используются, и убедитесь в их совместимости с вашей CSP.
-
Корректировка CSP: Если вы можете контролировать источники шрифтов, и
ms-appx-web://
по какой-то причине необходим, рассмотрите возможность его добавления в вашу политику CSP, однако это следует делать с осторожностью, так как это может снизить уровень безопасности.
Заключение
Таким образом, ms-appx-web://
не является действительным источником для шрифтов согласно вашей CSP. Нарушение происходит из-за попытки загрузить ресурс из недопустимого источника, и важно рассмотреть источники его появления, чтобы избежать подобных ситуаций в будущем.