Połączenie HTTPS jest „niebezpieczne” ze względu na obrazy

14

Obecnie pracuję na stronie internetowej i pomyślnie zainstalowałem mój certyfikat SSL.

Kontroler GeoTrust SSL / TLS potwierdził, że łańcuch certyfikatów (w tym CA) jest poprawnie zainstalowany. W Chrome wszystko wygląda dobrze, ale moja kłódka nie jest zielona, ​​a w Firefoksie faktycznie stwierdza, że ​​strona nie jest bezpieczna, ponieważ są w niej niezaszyfrowane elementy.

Użyłem usługi online, aby sprawdzić, dlaczego tak jest, i okazuje się, że moje zdjęcia nie są uważane za bezpieczne adresy URL. Jak poradzić sobie z tą sytuacją, czyli jak bezpiecznie osadzać obrazy na mojej stronie?

mti_
źródło

Odpowiedzi:

32

Twoje tagi graficzne muszą obecnie wyglądać następująco:

<img src="http://example.com/images/image.jpg">

To httpoznacza, że ​​obraz NIE jest bezpiecznie obsługiwany. Osoba atakująca może zmienić obraz w trakcie przesyłania, a tym samym zmienić wygląd Twojej bezpiecznej strony dla użytkowników.

Zamiast tego możesz użyć dowolnego z poniższych sposobów, aby bezpiecznie obsługiwać obrazy:

  • Link do httpsjawnie:<img src="https://example.com/images/image.jpg">
  • Użyj względnego linkowania do obrazów we własnej domenie: <img src="/images/image.jpg">
  • Użyj protokołu względnego łączenia, aby użyć obrazów z innych domen: <img src="//example.com/images/image.jpg">

Jawne httpszawsze będzie bezpiecznie obsługiwać obraz (nawet jeśli strona nie jest bezpiecznie obsługiwana), natomiast względne łącza będą bezpiecznie obsługiwać obraz tylko wtedy, gdy strona będzie bezpiecznie obsługiwana.

W przeglądarce Firefox i chrome możesz kliknąć kłódkę i uzyskać więcej informacji o problemie. Po zrobieniu tego, oto zrzut ekranu z Firefoksa pokazujący listę wszystkich obrazów na stronie. Łatwo jest zeskanować listę i zobaczyć, które to http:

Stephen Ostermiller
źródło
2
„Osoba atakująca może zmienić przesyłany obraz, a tym samym zmienić sposób, w jaki Twoja strona jest bezpieczna dla użytkowników”. - lub nawet uruchomić lukę w module renderującym.
John Dvorak,
2
I przechwytywać pliki cookie, które mogą obejmować tokeny dostępu.
Darkhogg,
Brzmi bardzo podobnie, jak to jest zalecane. Dzięki tobie udało mi się zdobyć moją zieloną kłódkę, ale znajomy powiedział, że szyfrowanie zdjęć może spowolnić stronę. Czy to jest problem w moim przypadku?
mti_
3
Z pewnością szyfrowanie wiąże się z pewnymi narzutami, jednak w dzisiejszych czasach zwykle nie przekracza 10%. Ta kara za wydajność (nawet w przypadku zdjęć) to cena, którą musisz zapłacić za bezpieczną stronę.
Stephen Ostermiller
whynopadlock.com to przydatne narzędzie do szybkiego wskazywania niezabezpieczonych zasobów pod określonym adresem URL.
Ville,
5

Problem polega na tym, że Twoja strona wyświetla linki z lokalizacji http w przeciwieństwie do https. Wynika to z używania bezwzględnych łączy http do zasobów odniesienia, takich jak obrazy. Istnieją dwie lepsze metody, które pozwolą ci odwoływać się do linków w http lub https i uniknąć tego problemu.

Wymaga to odnalezienia tych linków i zmiany ich na:

  1. linki względne: tj./wp-content/yourtheme/images/image1.jpg
  2. lub umieść // z przodu domeny, jak w polu.//example.com/wp-content/wp-content/yourtheme/images/image1.jpg Będzie to następnie obsługiwać te zasoby przez http lub https w zależności od tego, które żądanie zostało złożone.

Zarówno w przeglądarce Chrome, jak i Firefox możesz kliknąć ikonę kłódki, a następnie kliknąć, aby wyświetlić listę niebezpiecznych linków. A jeśli nie widzisz żadnych obrazów lub innych zasobów podświetlonych w przeglądarce, ale nadal występują błędy, możesz odkryć, że istnieje wywołanie javascript, które odwołuje się do linków absolutnie przez http .

garth
źródło
2
//na początku nie jest standardem, a przeglądarki takie jak Lynx będą narzekać.
mirabilos,
2
@mirabilos RFC 1808 jest standardem dla adresów URL i określa linki względne protokołu (zaczynając od //) w sekcji 2.4.3. Standard ma już 15 lat i jest wdrażany przez wszystkie główne przeglądarki, w tym Lynx
Stephen Ostermiller
#mirabilos Sprawdź zalecane linki do repozytorium Google. Przekonasz się, że Google używa ich od wielu lat.
garth
1

To jest naprawdę podstawowe. Podczas budowania witryn obsługiwanych za pomocą protokołu SSL (https) wszelkie odwołania w kodzie, które nie są poprzedzone https, powodują wyświetlenie ostrzeżeń bezpieczeństwa - innych niż linki. Zauważ, że większość (wszystkich) przeglądarek również domyślnie wyświetla linki względne do http. Więc jeśli odwołujesz się do /uploads/12/5/img.jpg lub /js/jquery.js, domyślnym protokołem przesyłania jest http - co jest naprawdę denerwujące.

Wszystkie przeglądarki traktują ostrzeżenia nieco inaczej, ale dostaniesz jakąś wiadomość. Ogólnym stwierdzeniem byłoby, że im nowa przeglądarka, tym ostrzejszy będzie komunikat. Niektóre starsze przeglądarki praktycznie ignorują te błędy, podczas gdy nowsze przeglądarki mogą zachowywać się, jakby twój świat był atakowany z powodu brakujących „s”.

blankip
źródło
10
„większość (wszystkich) przeglądarek również domyślnych linków względnych do http” Err, co? Absolutnie wszystkie przeglądarki, chyba że są uszkodzone, używają bieżącego protokołu, jeśli nie określisz wyraźnie nowego.
Oleg V. Volkov
5
Oleg ma rację; to nie jest „denerwujące”: jest całkowicie błędne.
Wyścigi lekkości z Moniką
3
To jest całkowicie błędne. Zignoruj ​​tę odpowiedź.
martijnve,
@martijnve - Jak moja odpowiedź jest zła?
blankip,
4
@blankip patrz komentarz oleg V. Volkovs. Wszelkie odniesienia zawierające http są nieprawidłowe. WSZYSTKIE inne są w porządku. (względny względem protokołu, względny względem domeny, względny względem ścieżki). I tak powinieneś używać linków względnych w prawie wszystkich przypadkach.
martijnve,
1

Jeśli żadna z tych sugestii nie pomoże, jeśli chodzi o niemożność wyświetlania obrazów po włączeniu protokołu SSL na swojej stronie internetowej, sprawdź na wszelki wypadek ustawienia cPanel dla Hotlinks, które znajdują się w sekcji Bezpieczeństwo cPanel. Jest bardzo możliwe, że w tym ustawieniu masz następujące opcje: http://example.comi http://www.example.comsą włączone, aby umożliwić dostęp do obrazów, podczas gdy ich httpswersja nie jest włączona.

Śmieci internetowe
źródło
-4

Sprawdź konfigurację bezpiecznego adresu URL w swoim cms / wordpress / magento lub innej używanej platformie. Możesz także udostępnić niektóre ze swoich tagów graficznych, ale podstawowe obrazy img src nie powodują tego rodzaju błędów.

Struktura tagu obrazu jest ważna, ale myślę, że w centrum twojego pytania jest relacja z „typem” certyfikatu SSL zainstalowanym na twojej stronie. Osobista sprawa przydarzyła mi się ze „Standardowym certyfikatem SSL GoDaddy.

Zobaczysz ikonę ostrzeżenia w pasku wyszukiwania adresu URL przeglądarki Firefox (konkretnie), informującą, że w Twojej witrynie mogą znajdować się niezabezpieczone obrazy lub elementy. O ile wiem, to tylko kwestia tego, jak Firefox przetwarza informacje o certyfikacie lub informacje w nim zawarte. Nie dzieje się tak w Safari, Chrome ani innych przeglądarkach. Znalazłem rozwiązanie tego problemu, instalując zamiast „Standardowego SSL” „Premium SSL Certificate lub EVC Extended Validation Certificate ”, który zawiera bardziej szczegółowe informacje o firmie. Otrzymasz zielony pasek kłódki.

Jednak certyfikat premium ssl może być nieco droższy, około 150–200 USD rocznie.

wprowadź opis zdjęcia tutaj

Gaio RoOts
źródło
5
Nie jest to prawdą, ponieważ: 1) tagi <img src = "..."> rzeczywiście mogą dawać tego rodzaju błąd, jeśli wprowadzisz adres URL HTTP (w przeciwieństwie do adresu HTTPS) i 2) rodzaj certyfikatu lub sposób, w jaki jest przetwarzany, nie ma z tym absolutnie nic wspólnego
fNek
Używam globalnych tagów multimedialnych img src, takich jak {{media url = "path / to / image.jpg"}} z protokołem ssl lub bez niego i nie otrzymuję żadnych błędów. Przy okazji wskazuję na wyświetlany błąd Stephen's Firefox ssl. Pozdrowienia.
Gaio RoOts,
3
Jeśli używasz względnych adresów URL, nie ma problemów, ponieważ są względne. Przeczytaj drugą odpowiedź. Wiem, że masz na myśli błąd Stephena. Typy certyfikatów nadal nie mają z tym nic wspólnego.
fNek,
Rodzaj certyfikatu nie ma wpływu na tak zwane „ostrzeżenie o mieszanej zawartości”. Ponadto wszystkie współczesne przeglądarki wyświetlają ostrzeżenie, niektóre wyraźnie, inne po prostu odmawiając wyświetlenia ikony Zablokuj.
Martijn Heemels,