Sprawdzanie mieszanej treści

HTML do skanowania

Wykrywa zasoby http:// wczytywane na stronie HTTPS.

Dalej

Po migracji witryny na HTTPS zabłąkane znaczniki <img>, <script>, <link> albo <iframe>, które wciąż wskazują na http://..., psują zieloną kłódkę, a we współczesnych przeglądarkach często w ogóle się nie ładują. Wpisz adres URL, a to narzędzie wczyta stronę, przeanalizuje każdy podzasób (obrazy, arkusze stylów, skrypty, czcionki, iframe’y, wideo, audio) i wypisze wszystko serwowane przez zwykły HTTP, byś mógł to naprawić, zanim użytkownicy trafią na ostrzeżenie „nie w pełni bezpieczne”.

Jak działa skanowanie

  1. 1

    Wpisz adres URL

    Adres HTTPS. Skaner podąża za jednym przekierowaniem.

  2. 2

    Strona zostaje pobrana

    HTML jest analizowany pod kątem każdego odwołania do podzasobu.

  3. 3

    Każde odwołanie jest klasyfikowane

    HTTPS, HTTP albo względne wobec protokołu (`//cdn...`).

  4. 4

    Raport pogrupowany według typu

    Treść aktywna a pasywna, z rankingiem powagi problemu.

Aktywna a pasywna mieszana treść

Przeglądarki traktują dwie klasy odmiennie:

  • Aktywna mieszana treść (skrypty, iframe’y, arkusze stylów, XHR/fetch, workery, WebSocket-y). Blokowana całkowicie przez współczesne przeglądarki. Obejmuje: <script>, <link rel="stylesheet">, <iframe>, fetch(), XMLHttpRequest, importScripts().
  • Pasywna mieszana treść (obrazy, wideo, plakaty audio). Ładowana, ale oznaczana, kłódka znika, a pasek adresu pokazuje ostrzeżenie. Obejmuje: <img>, <audio>, <video>, cele action formularzy.

Dlaczego to ma znaczenie

  • Zaufanie. Zepsuta kłódka sygnalizuje „ta strona nie jest bezpieczna” użytkownikom, którzy to zauważą.
  • Funkcjonalność. Zablokowana aktywna treść oznacza, że skrypty się nie uruchamiają, a arkusze stylów nie działają, strony wyglądają na zepsute.
  • SEO. Google preferuje strony HTTPS; zepsute sygnały HTTPS pośrednio szkodzą pozycjom.
  • Zgodność. PCI DSS i wiele innych ram zgodności wymaga HTTPS bez mieszanej treści na stronach transakcyjnych.

Częste źródła

Źródło Typowa naprawa
Starszy CDN na HTTP Zamień domenę na CDN HTTPS
Osadzony stary kod embed YouTube / Vimeo Zaktualizuj embed do bieżącej wersji
Adresy URL skryptów sieci reklamowych Użyj wersji HTTPS (dostępnej od lat)
Czcionki, mapy stron trzecich Zamień http://fonts.googleapis.comhttps://
Widżety przycisków społecznościowych Użyj bieżącego kodu widżetu
Adresy URL obrazów od użytkowników Przepisz przy zapisie; ładuj przez proxy przy wyświetlaniu
Zaszyte adresy URL w wpisach bloga Zbiorcze znajdź-i-zamień w bazie danych

Strategie naprawy

  1. Adresy względne wobec protokołu (//cdn.example.com/a.js). Ładują się z protokołem bieżącej strony. Bezpieczne dla większości CDN-ów, ale przestarzałe, preferuj jawne https://.
  2. Przepisanie w źródle. Zaktualizuj szablony i treść, by używały https://. Przeskanuj kod wyrażeniem regularnym: http://(?!localhost).
  3. Aktualizacja Content Security Policy. Content-Security-Policy: upgrade-insecure-requests mówi przeglądarce, by po cichu przepisała adresy HTTP zasobów na HTTPS. Najlepsze dla witryn, które nie są w stanie zaudytować każdego URL-a.
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">, odpowiednik inline.
  5. Proxyowanie zasobów dostępnych tylko po HTTP przez twoje źródło HTTPS, jeśli serwer nadrzędny faktycznie nie ma punktu HTTPS (dziś rzadkie).

Co znajduje narzędzie

  • Wszystkie zewnętrzne adresy URL w <img>, <script>, <link>, <iframe>, <video>, <audio>, <source>.
  • Atrybuty action formularzy.
  • Inline’owe odwołania CSS url(...) w blokach <style>.
  • Nie przeszukuje zasobów wstrzykiwanych przez JavaScript, są dodawane w czasie działania i wymagają audytu po stronie przeglądarki (panel Issues w Chrome DevTools je wychwytuje).

Najczęściej zadawane pytania

Częściowo. Nagłówek CSP upgrade-insecure-requests albo meta-znacznik mówi przeglądarkom, by automatycznie przepisywały adresy podzasobów HTTP na HTTPS. Działa, gdy serwer faktycznie obsługuje HTTPS; jeśli serwer nadrzędny jest tylko HTTP, przepisanie zawodzi.

Nie. Tylko zasoby wskazane w statycznym HTML. Skrypty tworzące elementy <img> w czasie działania się nie pokażą. Panel Issues w Chrome DevTools wychwytuje je w przeglądarce.

Są bezpieczne pod kątem mieszanej treści na stronach HTTPS (dziedziczą HTTPS). Ale psują się na wewnętrznych narzędziach dostępnych tylko po HTTP albo na zarchiwizowanych stronach, i są przestarzałe. Preferuj jawne https://.

Pamięć podręczna przeglądarki. Odśwież na twardo (Ctrl+Shift+R / Cmd+Shift+R) albo przetestuj w oknie incognito, by potwierdzić naprawę. Raporty CSP i ostrzeżenia konsoli pokazują bieżący stan.

Pobieracz po stronie serwera ściąga stronę do analizy. Sam adres URL nie jest przechowywany poza obrębem żądania.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach