Welke soorten mixed content zijn er?
De huidige specificatie verdeelt mixed content in twee groepen. Vroeger sprak men van passieve en actieve mixed content. Die termen kom je nog vaak tegen.
| Soort | Voorbeelden | Wat de browser doet |
|---|---|---|
| Upgradable (vroeger passief) | Afbeeldingen via src, audio en video | Zet het verzoek automatisch om van http naar https |
| Blockable (vroeger actief) | Scripts, stylesheets, iframes, lettertypen, fetch-verzoeken en afbeeldingen via srcset | Blokkeert het verzoek |
Staat er een IP-adres in plaats van een domeinnaam in de URL, dan blokkeert de browser ook afbeeldingen. Een download die via HTTP loopt vanaf een HTTPS-pagina heet een mixed download. Browsers horen die ook te blokkeren.
Waarom is mixed content een probleem?
HTTPS beschermt de verbinding tussen browser en server. Laadt de pagina een onderdeel via HTTP, dan kan iemand onderweg dat onderdeel lezen of vervangen. Scripts zijn het gevaarlijkst, want die kunnen de hele pagina aanpassen. Ook een afbeelding kan misleiden, bijvoorbeeld door de functie van een knop anders te laten lijken.
Omdat browsers de risicovolle onderdelen blokkeren, merk je mixed content vaak aan een kapotte pagina. Een stylesheet ontbreekt, een formulier doet niets of een ingesloten video blijft leeg. Lighthouse keurt zo’n pagina af bij de controle op HTTPS.
Voorbeeld: losse eindjes na de overstap naar HTTPS
Een webshop in wandelsportartikelen uit Apeldoorn is overgestapt op HTTPS. In oude productteksten staan nog afbeeldingen met http:// in de URL. Ook de chatwidget laadt een script via HTTP. De afbeeldingen zet de browser om naar HTTPS, dus die verschijnen gewoon. De browser blokkeert het script, en de chat werkt niet meer.
De webshop lost het in drie stappen op:
- Alle
http://-verwijzingen naar het eigen domein vervangen doorhttps://of een relatief pad. - Voor de chatwidget de HTTPS-versie van het script gebruiken.
- Door de site klikken met de console van de browser open. Daar staan meldingen over omgezette en geblokkeerde onderdelen.
Verwar mixed content niet met
- HTTPS zonder geldig certificaat: dan is de verbinding zelf niet te vertrouwen en toont de browser een waarschuwing voor de hele site. Bij mixed content is de hoofdverbinding wel veilig, maar een deel van de onderdelen niet.
- Een link naar een HTTP-pagina: klik je vanaf een HTTPS-pagina door naar een HTTP-pagina, dan is dat geen mixed content. De browser opent dan een nieuwe pagina in plaats van iets in de huidige pagina te laden.
Veelgestelde vragen over Mixed content
Wat betekent mixed content?
Mixed content betekent gemengde inhoud. De pagina zelf laadt via het veilige HTTPS, maar sommige onderdelen komen via het onveilige HTTP binnen. Denk aan een script of afbeelding met http:// in de URL.
Hoe vind je mixed content op je site?
Open de console in de ontwikkelaarstools van je browser en klik door je site. Je ziet een melding bij elk onderdeel dat de browser omzet of blokkeert. Lighthouse wijst het ook aan.
Is mixed content slecht voor SEO?
Het grootste risico is een kapotte pagina. Browsers blokkeren onveilige scripts en stylesheets, en dan werkt of oogt de pagina anders. Lighthouse keurt de pagina ook af bij de controle op HTTPS.