Strona zawiera mieszaną treść, gdy jej początkowy kod HTML jest wczytywany przez bezpieczne połączenie HTTPS, ale inne zasoby (np. obrazy, filmy, arkusze stylów i skrypty) są wczytywane przez niezabezpieczone połączenie HTTP. Nazwa odnosi się do połączenia treści HTTP i HTTPS na jednej stronie.
Żądanie zasobów podrzędnych za pomocą niezabezpieczonego protokołu HTTP zmniejsza bezpieczeństwo strony, ponieważ żądania te są narażone na ataki typu on-path, w których haker podsłuchuje połączenie sieciowe i wyświetla lub zmienia komunikację między 2 osobami. Korzystając z tych zasobów, hakerzy mogą śledzić użytkowników i zastępować zawartość witryny, a w przypadku aktywnej treści mieszanej mogą przejąć pełną kontrolę nad stroną, a nie tylko nad niezabezpieczonymi zasobami.
Chociaż wiele przeglądarek zgłasza użytkownikom ostrzeżenia o treści o mieszanej zawartości, raport jest często za późno ze względu na wykonanie niezabezpieczonych żądań i naruszenie bezpieczeństwa strony.
Ze względów bezpieczeństwa większość przeglądarek blokuje obecnie treść mieszaną. Zmień żądania treści niezabezpieczonych na takie, które zapewnią prawidłowe wczytywanie strony.
Dwa typy treści mieszanej
Istnieją 2 typy treści mieszanej: aktywna i pasywna.
Bierne treści mieszane, w tym obrazy, filmy i dźwięki, nie wchodzą w interakcje z pozostałą częścią strony, więc atak typu „man in the middle” jest ograniczony do możliwości, jakie może on wykonać, jeśli przechwyci lub zmieni daną treść.
Aktywna treść mieszana wchodzi w interakcję ze stroną jako całą. Dotyczy to skryptów, arkuszy stylów, elementów iframe i innego kodu, który przeglądarka może pobrać i wykonać. Ataki na aktywną treść mieszaną umożliwiają atakującemu wykonanie prawie każdej czynności na stronie.
Pasywna treść mieszana
Pasywna treść mieszana jest mniej ryzykowna niż aktywna treść mieszana, ale nadal istnieje. Na przykład osoba przeprowadzająca atak może:
- Przechwytuj żądania HTTP dotyczące obrazów w witrynie i zamieniaj te obrazy.
- Zastąp obrazy na przyciskach, aby użytkownicy mogli je zdezorientować, lub np. usuń treści, które chcieli zapisać.
- Zmień swoją witrynę na lepsze, zastępując obrazy treściami pornograficznymi.
- Zastąp zdjęcia produktów reklamami innego produktu.
Nawet jeśli osoba przeprowadzająca atak nie zmieni zawartości witryny, może śledzić użytkowników za pomocą żądań dotyczących treści mieszanej. Na podstawie obrazów i innych zasobów wczytywanych przez przeglądarkę mogą też określić, które strony odwiedza użytkownik i które produkty ogląda.
Jeśli występuje pasywna treść mieszana, większość przeglądarek informuje na pasku adresu, że strona nie jest bezpieczna, nawet gdy jest ona wczytywana przez HTTPS. Możesz zaobserwować takie zachowanie w tej prezentacji.
Do niedawna pasywną treść mieszaną ładowała się we wszystkich przeglądarkach, ponieważ zablokowanie jej powodowało nieprawidłowe działanie wielu witryn. Zaczyna się to zmieniać, dlatego tak ważne jest zaktualizowanie wszystkich wystąpień treści mieszanej w witrynie.
W niektórych przypadkach Chrome automatycznie uaktualnia pasywną treść mieszaną. Oznacza to, że jeśli zasób został zakodowany na stałe jako HTTP, ale jest dostępny przez HTTPS, przeglądarka wczytuje wersję HTTPS. Jeśli nie ma wersji zabezpieczonej, zasób się nie wczyta.
Za każdym razem, gdy Chrome wykryje treści mieszane lub automatycznie uaktualni pasywną treść mieszaną, zapisze szczegółowe komunikaty na karcie Problemy w Narzędziach deweloperskich, aby poradzić sobie z konkretnym problemem.
![Karta Problemy w Narzędziach deweloperskich w Chrome zawiera szczegółowe informacje o konkretnym problemie z treścią mieszaną i sposobie jego rozwiązania](https://web.developers.google.cn/static/articles/what-is-mixed-content/image/issues-tab-chrome.jpg?authuser=5&hl=pl)
Aktywna treść mieszana
Aktywne treści mieszane stanowią większe zagrożenie niż pasywna treść mieszana. Osoba przeprowadzająca atak może przechwycić i przepisać aktywną treść, wykorzystać ją do przejęcia pełnej kontroli nad stroną, a nawet nad całą witryną. Pozwala im to zmienić dowolny aspekt strony, w tym wyświetlanie innej treści, kradzież haseł użytkowników lub innych danych logowania, kradzież plików cookie sesji użytkowników lub całkowite przekierowanie użytkownika do innej witryny.
Ryzyko związane z używaniem treści mieszanej jest bardzo wysokie, dlatego większość przeglądarek domyślnie blokuje takie treści, aby chronić użytkowników, ale ich działanie różni się w zależności od dostawcy i wersji przeglądarki.
Ta prezentacja pokazuje przykłady aktywnych mieszanej treści. Wczytaj przykład przez HTTP, aby zobaczyć treść blokowaną podczas ładowania przykładu przez HTTPS. Zablokowane treści są też wymienione na karcie Problemy w Narzędziach deweloperskich.
![Karta Problemy w Narzędziach deweloperskich w Chrome zawiera szczegółowe informacje o konkretnym problemie z treścią mieszaną i sposobie jego rozwiązania](https://web.developers.google.cn/static/articles/what-is-mixed-content/image/the-issues-tab-chrome-de-0eea9d1e99f11.jpg?authuser=5&hl=pl)
Specyfikacja treści mieszanych
Przeglądarki są zgodne ze specyfikacją mieszanej treści, która określa kategorie treści możliwych do opcjonalnego zablokowania i treści możliwych do zablokowania.
Zasób kwalifikuje się jako treść możliwą do opcjonalnego blokowania, „gdy ryzyko udostępnienia go jako treści mieszanej jest większe niż ryzyko naruszenia istotnych części zawartości sieci”. Jest to podzbiór pasywnej treści mieszanej.
Wszystkie treści mieszane, których nie można opcjonalnie zablokować, są uznawane za blokowalne i powinny być blokowane przez przeglądarkę.
W ostatnich latach gwałtownie wzrosło użycie protokołu HTTPS i stało się one wyraźnym ustawieniem domyślnym w internecie. Dzięki temu przeglądarki mogą teraz blokować całą treść mieszaną, nawet te typy zasobów podrzędnych zdefiniowane w specyfikacji treści mieszanej jako opcjonalnie możliwe do zablokowania.
Starsze przeglądarki
Niektórzy użytkownicy mogą używać starszych przeglądarek. Różni dostawcy przeglądarek traktują treści mieszane inaczej. Najgorsze, że starsze przeglądarki i wersje w ogóle nie blokują treści mieszanej, co jest niebezpieczne dla użytkownika.
Bezpiecznie ładując wszystkie zasoby i rozwiązując problemy z treścią mieszaną, sprawiasz, że Twoje treści są widoczne i chronisz użytkowników przed niebezpiecznymi treściami, których starsze przeglądarki mogą nie blokować.