En räknare på en HTTPS-sida
En webbplats körs över HTTPS. Besökarna ser ett hänglås. Sedan klistras något från en annan webbplats in, och hänglåset försvinner – eller så syns det inklistrade helt enkelt inte.
Det kallas blandat innehåll, och det är värt tio minuter att förstå, eftersom det i det tysta får många gamla inbäddade widgetar att sluta fungera.
Vad webbläsarna gör åt det
En sida som laddas över HTTPS får inte i smyg hämta delar av sig själv över vanlig HTTP. Den som avlyssnar trafiken och kan ändra en okrypterad bildförfrågan kan ändra vad besökarna ser, så webbläsaren vägrar låta de två blandas.
För bilder och skript uppgraderar moderna webbläsare antingen förfrågan till HTTPS på egen hand eller blockerar den helt. Vilket av de två som sker beror på webbläsaren och typen av resurs, och inget av utfallen är säkert att lita på.
Hur Stats4U hanterar det
Det är löst, på två ställen. Skriptet har adressen till räkningens ändpunkt inskriven som HTTPS, så varje förfrågan det gör är krypterad oavsett hur sidan som laddade det levererades. Och servern svarar på vanlig HTTP med en permanent omdirigering till HTTPS – kontrollerat medan detta skrevs, både för skriptet och för själva räknarbilden.
En räknare som har bäddats in med ett aktuellt kodavsnitt förstör alltså inte hänglåset, och det finns inget att konfigurera.
Det enda fallet som fortfarande kan ställa till det
Om någon en gång kopierade räknarskriptet in i själva webbplatsen i stället för att länka till det – vilket var en vanlig vana, och det finns sidor som gör så än i dag – så är det som körs där en frusen kopia från när det nu hände. En tillräckligt gammal kopia har en vanlig HTTP-adress i sig, och inga rättelser på vår sida når fram till den.
Två minuter att kontrollera: visa sidans källkod och sök efter http:// följt av vår domän. En träff där betyder att hela inbäddningen bör ersättas med ett aktuellt kodavsnitt från statistiksidan.
Och medan källkoden ändå är öppen: att länka till skriptet är bättre än att över huvud taget lagra en kopia av det. Det finns ett separat inlägg om varför, och det gäller mycket mer än räknare.