Udostępnij za pośrednictwem


Wprowadzenie do ASP.NET Web Forms

Model formularzy sieci Web oraz sposób tworzenia stron i używania kontrolek.

Dlaczego zasoby zewnętrzne na mojej stronie są blokowane w trybie podglądu na żywo w Internecie?

Jeśli masz jakiekolwiek zasoby zewnętrzne z domeny trzeciej strony, które znajdują się na Twojej stronie, możesz zauważyć, że narzędzie Podgląd na Żywo Web uniemożliwiło ich ładowanie i pokazuje to powiadomienie:

Powiadomienie o zablokowanych zasobach

Być może zastanawiasz się, dlaczego zasoby zostały zablokowane do załadowania w narzędziu projektowania i dlaczego wyświetlany jest komunikat toast. W tym artykule wyjaśniono, dlaczego zasoby zostały zablokowane.

Web Live Preview (WLP) to rozszerzenie programu Visual Studio oparte na BrowserLink. WLP używa BrowserLink, aby zapewnić kanał dwukierunkowej komunikacji między programem Visual Studio i projektantem. Ta dwukierunkowa komunikacja umożliwia programowi WLP udostępnienie wielu funkcji:

  • Synchronizowanie zawartości i aktualnie wybranego węzła w projektancie z edytorem.
  • Wypychanie nowej zawartości utworzonej przez kreatora do edytora.
  • Wykonywanie poleceń Panelu akcji.

Jeśli wstrzykniesz skrypty lub zasoby zewnętrzne do strony internetowej, może to narazić cię na potencjalną lukę w zabezpieczeniach poprzez wykorzystanie WLP i BrowserLink do przeprowadzenia ataku typu cross-site scripting (XSS).

Jeśli zasób zewnętrzny może wstrzyknąć złośliwy kod do witryny, ten kod może użyć skryptu Browser Link wstrzykniętego do projektanta, aby wykonywać wywołania zwrotne do programu Visual Studio. Wstrzyknięty skrypt może umożliwić kodowi pisanie dowolnej zawartości w plikach otwartych w programie Visual Studio lub otwieranie innych wektorów ataku.

Obecnie nie ma dobrego sposobu, aby uniemożliwić osobom atakującym komunikację za pośrednictwem skryptu BrowserLink z powrotem do programu Visual Studio.

Ograniczanie luk w zabezpieczeniach

W miarę możliwości, ograniczyliśmy i złagodziliśmy luki w zabezpieczeniach w komunikacji za pośrednictwem skryptu BrowserLink z powrotem do programu Visual Studio. Jednak niektóre ataki mogą być nadal możliwe za pośrednictwem ataku XSS.

Aby zmniejszyć możliwość takiego ataku XSS, domyślnie program WLP blokuje ładowanie wszystkich zasobów zewnętrznych. Jeśli jakikolwiek zasób zewnętrzny jest zablokowany, WLP wyświetla następujące powiadomienie w prawym górnym rogu projektanta.

Komunikat o zablokowanych zasobach

(W tym przykładzie używamy następującego pliku SVG, który jest zasobem zewnętrznym używanym w przykładowej aplikacji internetowej: https://visualstudio.microsoft.com/wp-content/uploads/2021/10/Product-Icon.svg)

Jeśli okno Microsoft Edge DevTools jest otwarte, może zostać również wyświetlony następujący komunikat wyjaśniający, dlaczego zasób zewnętrzny nie może załadować:

Zablokowany komunikat o zasobach w DevTools

W powiadomieniu projektanta, jeśli wybierzesz link kliknij tutaj, pojawi się następujące okno dialogowe z domenami zablokowanych zasobów automatycznie dodanymi do jego listy:

Zezwalaj na domeny

Wszystkie zasoby pochodzące z domen zewnętrznych przechowywanych na liście okna dialogowego nie będą domyślnie blokowane w programie WLP i ładowane jak zwykle. Po kliknięciu przycisku OK projektant ponownie załaduje stronę i ładuje wszystkie wcześniej zablokowane zasoby, których domeny zostały dodane do okna dialogowego. Upewnij się, że zezwalasz tylko domenom zewnętrznym, które zostały zweryfikowane, aby były wiarygodne i bezpieczne.

Kliknięcie linku Web Live Preview - domeny zewnętrzne w powiadomieniu powoduje wyświetlenie tego samego okna dialogowego, ale nie spowoduje dodania żadnych domen zablokowanych zasobów do tego okna dialogowego:

Zezwalaj na domeny bez dodawania

Możesz również uzyskać dostęp do okna dialogowego Tools -> Options -> Web Live Preview -> Allowed external domains during design za pomocą ustawienia. Ustawienia okna dialogowego są dla zainstalowanej instancji programu Visual Studio.

Opcje narzędzi — zablokowane zasoby

Ostrzeżenie

Zezwalanie na to, by domeny nie były blokowane domyślnie, może narazić na atak XSS wymieniony powyżej. Zdecydowanie zalecamy zezwolenie tylko na domeny zewnętrzne, które można zweryfikować jako zaufane i bezpieczne.