Udostępnij za pośrednictwem


Wprowadzenie z ASP.NET Web Forms

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

Dlaczego zasoby zewnętrzne na mojej stronie są blokowane w podglądzie na żywo w sieci Web?

Jeśli masz jakiekolwiek zasoby zewnętrzne z domeny innej firmy, które znajdują się na stronie, możesz zauważyć, że projektant w podglądzie na żywo w sieci Web uniemożliwił ich ładowanie i wyświetla ten wyskakujący wyskakujący komunikat:

Wyskakujące zablokowane zasoby

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

Web Live Preview (WLP) to rozszerzenie programu Visual Studio oparte na przeglądarceLink. Funkcja WLP używa narzędzia BrowserLink, aby zapewnić kanał dwukierunkowej komunikacji między programem Visual Studio a projektantem. Ta dwukierunkowa komunikacja umożliwia funkcji WLP zapewnienie wielu funkcji:

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

W przypadku wstrzyknięcia skryptów lub zasobów z innej firmy do strony internetowej może to spowodować zagrożenie dla potencjalnej luki w zabezpieczeniach przy użyciu funkcji WLP i BrowserLink w celu dokonania ataku na skrypty między witrynami (XSS).

Jeśli zasób innej firmy może wstrzyknąć złośliwy kod do witryny, kod może użyć skryptu linku przeglądarki wprowadzonego do projektanta, aby wykonać wywołania z powrotem 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

Jak najwięcej, ograniczyliśmy i ograniczyliśmy luki w zabezpieczeniach z 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 funkcja WLP blokuje ładowanie wszystkich zasobów zewnętrznych. Jeśli jakikolwiek zasób zewnętrzny jest zablokowany, funkcja WLP wyświetla następujące wyskakujące wyskakujące okienko w prawym górnym rogu projektanta:

Wyskakujące zablokowane zasoby

(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żesz również zauważyć następujący komunikat wyjaśniający, dlaczego zasób zewnętrzny nie może załadować:

Komunikat o zablokowanych zasobach — DevTools

W wyskakujące okienku projektanta, jeśli wybierzesz link kliknij tutaj , zostanie wyświetlone następujące okno dialogowe z domenami zablokowanych zasobów automatycznie dodanych do listy okna dialogowego:

Zezwalaj na domeny

Wszystkie zasoby pochodzące z domen zewnętrznych przechowywanych na liście okna dialogowego nie będą domyślnie blokowane w funkcji WLP i są ładowane w zwykły sposób. 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 wyskakujące okno dialogowe powoduje wyświetlenie tego samego okna dialogowego, ale nie spowoduje dodania żadnych domen zablokowanych zasobów do 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 pośrednictwem ustawienia . Ustawienia okna dialogowego są dla zainstalowanego wystąpienia programu Visual Studio.

Opcje narzędzi — zablokowane zasoby

Ostrzeżenie

Zezwalanie domenom na domyślne blokowanie może spowodować uwidocznienie ataku XSS wymienionego powyżej. Ponownie zdecydowanie zalecamy zezwalanie tylko na domeny zewnętrzne, które można zweryfikować jako wiarygodne i bezpieczne.