Obsługa protokołu HTTPS w witrynie to ważny krok w kierunku ochrony witryny i użytkowników przed atakami. jednak treść mieszana może stać się bezużyteczna. Przeglądarki z coraz bardziej niezabezpieczone treści mieszane będą blokowane, zgodnie z opisem w sekcji Co to jest treść mieszana?
W tym przewodniku zademonstrujemy techniki i narzędzia, które pomogą Ci rozwiązać istniejące problemy z treścią mieszaną. i zapobieganiu nowym sytuacjom.
Znajdowanie treści mieszanej na stronie
Gdy otworzysz stronę HTTPS w Google Chrome, wyświetli ostrzeżenie o treści mieszanej w konsoli JavaScript jako o błędach i ostrzeżeniach.
W sekcji Co to jest treść mieszana?, znajdziesz kilka przykładów i zobaczysz, jak problemy są zgłaszane w Narzędziach deweloperskich w Chrome.
Przykład pasywnej treści mieszanej spowoduje wyświetlenie poniższych ostrzeżeń.
Jeśli przeglądarka znajdzie treści pod adresem URL https
, automatycznie je zaktualizuje i wyświetli komunikat.
Aktywna treść mieszana jest zablokowana i wyświetla ostrzeżenie.
Jeśli zobaczysz takie ostrzeżenia w przypadku http://
adresu URL w swojej witrynie,
musisz naprawić je u źródła witryny.
Warto sporządzić listę tych adresów URL wraz ze stroną, na której zostały znalezione, aby móc je wykorzystać do naprawienia błędów.
Znajdowanie treści mieszanej w witrynie
Możesz wyszukiwać treści mieszane bezpośrednio w kodzie źródłowym.
Wyszukaj w źródle hasło http://
i poszukaj tagów zawierających atrybuty adresu URL HTTP.
Pamiętaj, że atrybut href
w tagach kotwicy (<a>
) zawiera parametr http://
często nie jest problemem dotyczącym treści mieszanej, jednak kilka ważnych wyjątków omówiono później.
Jeśli Twoja witryna została opublikowana za pomocą systemu zarządzania treścią, może się zdarzyć, że linki do niezabezpieczonych adresów URL zostaną wstawione podczas publikowania stron. Obrazy mogą na przykład być zawarte w pełnym adresie URL, a nie w ścieżce względnej. Trzeba je znaleźć i poprawić w treściach systemu CMS.
Naprawianie treści mieszanych
Po znalezieniu w źródle witryny treści mieszanej możesz go rozwiązać, wykonując te czynności.
Jeśli w konsoli zobaczysz komunikat, że żądanie zasobu zostało automatycznie uaktualnione z HTTP do HTTPS,
możesz bezpiecznie zmienić adres URL http://
zasobu w kodzie na https://
.
Aby sprawdzić, czy zasób jest dostępny w bezpieczny sposób, zmień http://
na https://
na pasku adresu URL przeglądarki.
i próbując otworzyć adres URL na karcie przeglądarki.
Jeśli zasób nie jest dostępny w https://
, rozważ jedno z tych rozwiązań:
- Dołącz zasób z innego hosta, jeśli jest dostępny.
- Pobierz i przechowuj treści bezpośrednio w swojej witrynie, jeśli masz na to prawo.
- całkowicie wykluczyć zasób ze swojej witryny.
Po rozwiązaniu problemu wyświetl stronę, na której pierwotnie znaleziono błąd i sprawdź, czy już się nie pojawia.
Uwaga na niestandardowe tagi
Uważaj na używanie w witrynie niestandardowych tagów.
Na przykład adresy URL tagów kotwicy (<a>
) nie powodują błędów związanych z treścią mieszaną.
ponieważ powodują one przejście przeglądarki do nowej strony.
Oznacza to, że zazwyczaj nie trzeba ich usuwać.
Jednak niektóre skrypty galerii obrazów zastępują funkcje biblioteki <a>
i wczytaj zasób HTTP określony przez atrybut href
w reklamie lightbox na stronie,
co powoduje problem z treścią mieszaną.
Obsługa treści mieszanych na dużą skalę
Powyższe instrukcje ręczne sprawdzają się w przypadku mniejszych witryn. ale w dużych witrynach z wieloma osobnymi zespołami śledzenie wczytywanych treści może być trudne. Aby ułatwić sobie to zadanie, możesz użyć polityki bezpieczeństwa treści , który powiadomi przeglądarkę o mieszanych treściach i dopilnuje, aby strony nigdy nie ładowały niezabezpieczonych zasobów.
Polityka bezpieczeństwa treści
Polityka bezpieczeństwa treści (CSP) to wielofunkcyjna funkcja przeglądarki, której można użyć do zarządzania treścią mieszaną na dużą skalę. Mechanizm raportowania CSP może służyć do śledzenia treści mieszanej w witrynie, i udostępnić zasady ich egzekwowania, które zapewnią ochronę użytkownikom przez uaktualnianie lub blokowanie treści mieszanych.
Aby włączyć te funkcje na stronie, dodaj parametr
nagłówek Content-Security-Policy
lub Content-Security-Policy-Report-Only
w odpowiedzi wysłanej z Twojego serwera.
Możesz także skonfigurować Content-Security-Policy
(ale nie Content-Security-Policy-Report-Only
) za pomocą tagu <meta>
w sekcji <head>
strony.
Znajdowanie treści mieszanej przy użyciu zasady zabezpieczeń treści
Polityka bezpieczeństwa treści pozwala zbierać raporty o treściach mieszanych w witrynie.
Aby włączyć tę funkcję, ustaw dyrektywę Content-Security-Policy-Report-Only
, dodając ją jako nagłówek odpowiedzi w swojej witrynie.
Nagłówek odpowiedzi:
Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint
Za każdym razem, gdy użytkownik odwiedza stronę w Twojej witrynie,
ich przeglądarka wysyła raporty w formacie JSON
dotyczące wszystkiego, co narusza politykę bezpieczeństwa treści,
https://example.com/reportingEndpoint
W takim przypadku za każdym razem, gdy zasób podrzędny jest ładowany przez HTTP, wysyłany jest raport.
Raporty te zawierają adres URL strony, na której doszło do naruszenia zasad, oraz adres URL zasobu podrzędnego, który naruszał zasady.
Jeśli skonfigurujesz punkt końcowy raportowania tak, aby logował te raporty,
możesz śledzić treści mieszane w witrynie bez samodzielnego odwiedzania każdej strony.
Są to 2 zastrzeżenia:
- Użytkownicy muszą otworzyć Twoją stronę w przeglądarce, która rozumie nagłówek CSP. Dotyczy to większości nowoczesnych przeglądarek.
- Otrzymujesz raporty tylko o stronach odwiedzonych przez użytkowników. Jeśli więc masz mało ruchu, może upłynąć trochę czasu, zanim pojawią się raporty dotyczące całej witryny.
Polityka bezpieczeństwa treści .
Alternatywy dla raportowania za pomocą CSP
Jeśli witryna jest hostowana na platformie takiej jak Blogger, możesz nie mieć uprawnień do modyfikowania nagłówków i dodawania CSP. Zamiast tego możesz skorzystać z robota robota, który wyszukuje problemy w witrynie, na przykład: HTTPSChecker lub Skanowanie treści mieszanych –
Uaktualnianie niezabezpieczonych żądań
Przeglądarki zaczynają uaktualniać swoje przeglądarki i blokować niezabezpieczone żądania. Za pomocą dyrektyw CSP możesz wymusić automatyczne uaktualnienie lub blokowanie tych zasobów.
upgrade-insecure-requests
Dyrektywa CSP nakazuje przeglądarce uaktualnienie niezabezpieczonych adresów URL przed wysłaniem żądań sieciowych.
Jeśli na przykład strona zawiera tag graficzny z adresem URL HTTP takim jak
<img src="http://example.com/image.jpg">
Zamiast tego przeglądarka wysyła bezpieczne żądanie dotyczące
https://example.com/image.jpg
, dzięki czemu unikniesz problemów z treściami mieszanymi.
Możesz włączyć takie działanie, wysyłając nagłówek Content-Security-Policy
z tą dyrektywą:
Content-Security-Policy: upgrade-insecure-requests
Możesz też umieścić tę samą dyrektywę w sekcji <head>
używając elementu <meta>
:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Tak jak w przypadku automatycznego uaktualniania przeglądarki, jeśli zasób nie jest dostępny przez HTTPS,
uaktualnione żądanie kończy się niepowodzeniem i zasób nie został wczytany.
Zapewnia to bezpieczeństwo strony. Dyrektywa upgrade-insecure-requests
wykracza poza automatyczne uaktualnianie przeglądarki,
żądania uaktualnienia, których
obecnie nie robi przeglądarka.
Dyrektywa upgrade-insecure-requests
spada do dokumentów typu <iframe>
,
aby chronić całą stronę.