Blandet innhold bak en VPN: reparer ressursen, ikke tunnelen
Hengelåsen beskriver dokumentet, ikke skriptene det laster. Les konsollen, behold blokkeringen, reparer referansen ved kilden og test siden på nytt.
En HTTPS-side som laster skript over HTTP, sender to forespørsler med to ulike beskyttelsesnivåer, og hengelåsen beskriver bare den første. En tunnel endrer ikke dette, fordi den beskytter transportøren og ikke ressursens egen protokoll. Nettleseren forteller deg allerede hvilken forespørsel som mislyktes, hvis du leser konsollen i stedet for adressefeltet. Tre kontroller tar deg fra en delvis fungerende side til en faktisk reparasjon.
Les forespørselen, ikke adressefeltet
Et dokument hentet over HTTPS kan referere til et skript, et stilark, en skrift eller en ramme over vanlig HTTP. Den referansen er en egen forespørsel, og det er den nettleseren klager på. Hoveddokumentets beskyttelse beveger seg ikke tilbake inn i den, og tunnelen som bærer begge strømmene, endrer ingen av protokollene. Siden kan derfor være både virkelig sikker og virkelig ødelagt samtidig.
Å kalle ressursen bare en inkludert fil gjør ikke utskiftingen av den ufarlig.
Hvis usikkert skriptinnhold kan endres underveis og deretter kjøres, kan det endre hvordan siden oppfører seg, noe som er et større problem enn en kosmetisk feil. Bilder bærer en mindre, men reell risiko når de endres underveis. Hengelåsen lyver ikke om noe. Den svarer på et snevrere spørsmål enn det du stilte den.
Vit hvilke ressurser som blokkeres, og hvilke som oppgraderes
Nettlesere behandler ikke alle typer ressurser likt. veiledningen om blandet innhold skiller forespørsler som oppgraderes til HTTPS fra forespørsler som blokkeres helt, der skript, stilark og programmatiske forespørsler er på den blokkerte siden, mens bilder og medier i stedet kan oppgraderes eller merkes.
Forskjellen forklarer de forvirrende rapportene. En side med et blokkert skript mister en funksjon helt, mens en side med et oppgradert bilde ser fint ut og stille har endret forespørselen sin. De dokumenterte kategoriene har også unntak, så ikke anta at hver URL av en gitt type oppgraderes med suksess. Les hva konsollen sier om den konkrete forespørselen i stedet for å resonnere fra en filendelse.
En blokkert widget er ikke bevis på at tunnelen feilet. Det er bevis på at nettleseren gjorde jobben sin.
Reparer referansen ved kilden
For en eier av et nettsted hører reparasjonen hjemme der den usikre URL-en ble skrevet: en mal, et stilark, et skript som setter sammen URL-er, eller en tredjepartskomponent. Å endre den synlige sideadressen lar alt dette være urørt. Søk i kilden etter verten og reparer hver referanse, ikke bare den ene konsollen tilfeldigvis nevnte.
Bekreft deretter at ressursen faktisk leveres over HTTPS med gyldig identitet, fordi et protokollbytte ikke kan trylle fram en tjeneste som aldri ble publisert der.
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1Følg også omdirigeringer, fordi en referanse som begynner med HTTPS fortsatt kan ende på en leveringsvei med klartekst. Når en avhengighet rett og slett ikke har sikker levering, fjerner eller erstatter du den gjennom den vanlige endringsprosessen i stedet for å sende en omvei. For en bruker lar du nettleserens beskyttelser være på og rapporterer ressursens URL, typen og konsollmeldingen til nettstedets eier. Aldri spre instruksjoner som ber ansatte tillate usikkert innhold for én side, fordi det unntaket overlever hendelsen som utløste det.
Test siden på nytt slik brukerne berører den
Øv på operasjonene som laster ressurser ved behov, ikke bare det første dokumentet. Sider henter ekstra kode, data og nedlastinger etter et knappetrykk, og de forespørslene er ofte de usikre. Bekreft de konkrete forespørslene og den synlige oppførselen mens beskyttelsen fortsatt er på. En test som begynner med en lempet nettleserprofil, kan ikke vise deg hva en vanlig bruker ser.
Tunnelen har fortsatt sin egen jobb, og den jobben er nettverkstilgang og ikke sideintegritet.
Når trafikken forlater tunnelens endepunkt, har enhver gjenværende HTTP-henting ikke vunnet noe fra transportøren. Reparer ressursstien og behold håndhevelsen i nettleseren. Å behandle ett transportlag til som en reparasjon av en usikker avhengighet er hvordan et team ender opp med et helpdesk-skript som slår av kontrollen som fungerte riktig.