Mixed content na HTTPS
Mixed content (Treści mieszane) to stan, w którym strona internetowa jest ładowana przez bezpieczny, szyfrowany protokół HTTPS, ale część jej zasobów (takich jak obrazy, skrypty, arkusze stylów czy pliki wideo) jest pobierana przez nieszyfrowane połączenie HTTP.
Połączenie HTTPS gwarantuje, że dane przesyłane między przeglądarką użytkownika a serwerem są zaszyfrowane. Gdy na takiej stronie pojawiają się elementy ładowane przez HTTP, pełne bezpieczeństwo połączenia zostaje naruszone.
Rodzaje treści mieszanych
Przeglądarki internetowe dzielą Mixed Content na dwie grupy w zależności od stopnia zagrożenia dla bezpieczeństwa użytkownika:
1. Passive Mixed Content (Bierna treść mieszana)
Dotyczy zasobów ładowanych przez HTTP, które nie mogą modyfikować reszty strony ani wpływać na jej działanie.
Zachowanie przeglądarek: Nowoczesne przeglądarki próbują automatycznie podmienić adres zasobu na wersję HTTPS, a jeśli to niemożliwe – blokują wyświetlanie zasobu lub wyświetlają ostrzeżenie o braku pełnego bezpieczeństwa (usuwają kłódkę przy adresie URL).
2. Active Mixed Content (Aktywna treść mieszana)
Dotyczy zasobów, które mają dostęp do struktury dokumentu (DOM) oraz mogą zmieniać zachowanie strony i przechwytywać dane użytkownika.
Zachowanie przeglądarek: Przeglądarki bezwzględnie blokują ładowanie aktywnych zasobów HTTP na stronach HTTPS, co prowadzi do błędów w działaniu strony i niepoprawnego wyświetlania jej elementów.
Skutki występowania Mixed Content
-
Spadek bezpieczeństwa: Pozostawienie nieszyfrowanych zasobów naraża użytkowników na ataki typu Man-in-the-Middle (MitM), w których napastnik może podmienić treść pobieranego skryptu lub przechwycić dane.
-
Utrata zaufania użytkowników: Usunięcie zielonej kłódki lub pojawienie się komunikatu „Niezabezpieczona” w pasku adresu przeglądarki budzi obawy użytkowników i zwiększa wskaźnik odrzuceń.
-
Błędy w działaniu witryny: Zablokowanie kluczowych plików JavaScript lub CSS przez przeglądarkę powoduje uszkodzenie układu graficznego strony lub brak działania interaktywnych funkcji.
-
Wpływ na pozycjonowanie (SEO): Błędy ładowania zasobów i rezygnacja użytkowników z przeglądania niezaszyfrowanej prawidłowo strony obniżają wskaźniki jakościowe witryny.
Jak wykryć i naprawić Mixed Content?
Proces eliminacji treści mieszanych składa się z identyfikacji bezwzględnych adresów HTTP w kodzie strony i ich zamiany na szyfrowane odpowiedniki:
-
Wykrycie zasobów: Użycie konsoli deweloperskiej w przeglądarce (zakładka Console pokaże czerwone ostrzeżenia o zablokowanych zasobach HTTP) lub narzędzi do skanowania witryny.
-
Zmiana adresacji na HTTPS: Zmiana wpisów w bazie danych lub kodzie źródłowym ze ścieżek bezwzględnych typu http://example.com/obrazek.jpg na ścieżki https://example.com/obrazek.jpg bądź ścieżki względne (np. /obrazek.jpg).
-
Wdrożenie nagłówka Content Security Policy (CSP): Dodanie do konfiguracji serwera nagłówka Content-Security-Policy: upgrade-insecure-requests, który wymusza na przeglądarce automatyczne pobieranie wszystkich zasobów przez HTTPS przed wysłaniem zapytania.