Начало работы с веб-формами ASP.NET

Модель веб-форм и создание страниц и использование элементов управления.

Почему внешние ресурсы на моей странице блокируются в режиме предварительного просмотра веб-страницы?

Если на вашей странице есть внешние ресурсы из стороннего домена, вы можете заметить, что конструктор Web Live Preview заблокировал их загрузку и отображает следующее текстовое уведомление:

Всплывающее уведомление о заблокированных ресурсах

Возможно, вам интересно, почему ресурсы были заблокированы для загрузки в конструкторе, и почему отображается тост. В этой статье объясняется, почему ресурсы заблокированы.

Web Live Preview (WLP) — это расширение Visual Studio, созданное на основе BrowserLink. WLP использует BrowserLink для двустороннего взаимодействия между Visual Studio и конструктором. Это двустороннее взаимодействие позволяет WLP предоставлять множество функций:

  • Синхронизация содержимого и выбранного узла в конструкторе с редактором.
  • Отправка нового содержимого, созданного из конструктора в редактор.
  • Выполнение команд панели действий.

При внедрении скриптов или ресурсов от третьих сторон на веб-страницу вы можете столкнуться с потенциальной уязвимостью безопасности, поскольку использование WLP и BrowserLink может привести к атаке с межсайтовым скриптингом (XSS).

Если сторонний ресурс может внедрить вредоносный код на сайт, код может использовать скрипт Browser Link, внедренный в конструктор для обратного вызова в Visual Studio. Внедренный скрипт может позволить коду писать произвольное содержимое в файлах, открытых в Visual Studio, или открывать другие векторы атаки.

В настоящее время нет хорошего способа запретить злоумышленникам взаимодействовать с помощью скрипта BrowserLink обратно в Visual Studio.

Устранение уязвимостей безопасности

Насколько это возможно, мы ограничивали и устраняли уязвимости безопасности в ходе связи через скрипт BrowserLink в Visual Studio. Однако некоторые атаки по-прежнему можно сделать с помощью атаки XSS.

Чтобы уменьшить вероятность такой атаки XSS по умолчанию, WLP блокирует загрузку всех внешних ресурсов. Если внешний ресурс заблокирован, WLP отображает следующее всплывающее уведомление в правом верхнем углу конструктора:

Всплывающее сообщение о заблокированных ресурсах

(В этом примере используется следующий SVG, который является внешним ресурсом, используемым в примере веб-приложения: https://visualstudio.microsoft.com/wp-content/uploads/2021/10/Product-Icon.svg)

Если откроется окно Microsoft Edge DevTools , вы также можете заметить следующее сообщение, объясняющее, почему внешний ресурс не удалось загрузить:

Средства разработки сообщений о заблокированных ресурсах

В всплывающем элементе конструктора, если щелкнуть ссылку здесь , откроется следующее диалоговое окно с доменами заблокированных ресурсов, которые автоматически добавляются в список диалогов:

Разрешить домены

Все ресурсы, поступающие из внешних доменов, хранящихся в списке диалогового окна, не будут заблокированы по умолчанию в WLP и загружаются как обычно. После нажатия кнопки ОК конструктор перезагрузит страницу и загружает все ранее заблокированные ресурсы, домены которых были добавлены в диалоговое окно. Убедитесь, что вы разрешаете только те внешние домены, которые проверили как надежные и безопасные.

Щелкнув по ссылке Динамическая предварительная версия веб — внешние домены во всплывающем окне, откроется то же самое диалоговое окно, но не добавит в него какие-либо домены заблокированных ресурсов:

Разрешить домены без добавления

Вы также можете получить доступ к диалоговому окну через настройку Tools -> Options -> Web Live Preview -> Allowed external domains during design. Параметры диалогового окна предназначены для каждого установленного экземпляра Visual Studio.

Параметры инструментов Блокированные ресурсы

Предупреждение

Разрешение не блокировать домены по умолчанию может открыть вас для атаки XSS, описанной выше. Опять же, мы настоятельно рекомендуем разрешить только внешние домены, которые можно проверить как надежные и безопасные.