Halve sida blir rendra, eitt stilark står gråa ut i nettverkspanelet, og VPN-klienten rapporterer framleis ein sunn tunnel. Alle tre observasjonane er sanne samstundes, fordi nettlesaren vurderte ein førespurnad sida gjorde, og tunnelen hadde inga stemme i den vurderinga. Det som lukkar saka er eit vedtak og ikkje ei innstilling: reparer referansen, eskaler han til den som eig verten, eller slepp avhengnaden. Kvart av desse vala har ein billeg test, og å velje feil kostar ein støtterunde.

Kvifor tunnelen ikkje kan dekkje ein underressurs

Blanda innhald byrjar med eit HTTPS-dokument som ber om ein underressurs over vanleg HTTP. Kvar adresse blir vurdert etter sitt eige skjema, så vernet til det overordna dokumentet strekkjer seg aldri til ein underordna førespurnad. Kryptering som blir lagd til under nettlesaren endrar kva som går over linja, ikkje det http:// som markupen bad om.

Dagens nettlesarar sorterer desse førespurnadene i to grupper og behandlar dei ulikt. Skript, stilark, iframes og kall via fetch, XMLHttpRequest eller WebSocket blir avviste blankt, utan eit oppgraderingsforsøk først. Bilete, lyd og video blir skrivne om til https:// og førespurde på nytt, og innlastinga blir avbroten når den trygge hentinga mislukkast. Ein underressursadresse der verten er ei bar IP-adresse er unnteken frå oppgradering, så eit HTTP-bilete på ein IP-vert blir verande blokkert i staden for å bli stille reparert. Splittinga, inkludert det unntaket på den oppgraderbare sida, er dokumentert i Mozillas rettleiar om blanda innhald. Chrome nyttar ei liknande avvising på utrygge nedlastingar som blir starta frå ei trygg side, og det er derfor ei PDF-lenkje kan døy medan den omkringliggjande sida ser intakt ut.

Den gråa rada er altså provet på at kontrollen verkar, ikkje provet på at tunnelen lak klartekst. Handsama rada som eit funn som peikar på éin referanse og ikkje på heile sida.

Avgjer kven som eig den utrygge referansen

Sorter den anstøtelege adressa etter kvar ho oppstår før du redigerer noko. Det svaret avgjer om du kan senda ut ei retting i dag, om ein leverandør må gje ut ei, eller om avhengnaden må forlate sida. Les det i kolonnen Initiator i nettverkspanelet, fordi markupen på skjermen ofte blir sett saman ved køyring.

Kvar adressa kjem fråKven som kan rette henneFørste steg
Hardkoda i ein mal eller del som du sender utDuByt henne ut med https://-forma og tøm deretter hurtiglageret
Injisert av ein taggbehandlar eller ein leverandørpakkeLeverandøren, med saka diSend den nøyaktige adressa, førespurnadstypen og konsollinja
Berre servert på port 80 utan TLS-lyttarEigaren av vertenBe om TLS, set noko eige framfor, eller slepp henne

Når verten allereie svarer på 443 og berre referansen seier http, er reparasjonen lokal: endre referansen, tøm sidehurtiglageret og stadfest at rada blir https. Ein vert som berre lyttar på port 80 kan ikkje redigerast til å oppfylle kravet, så ressursen flyttar, får noko framfor som du kontrollerer, eller forsvinn. Ei adresse som blir injisert av ein taggbehandlar dukkar framleis opp, sjølv når din eigen mal er rein, og det tilfellet høyrer heime i ei sak med den nøyaktige adressa og konsollinja vedlagd. Å fortelje personalet at dei skal tillate utrygt innhald er ikkje eitt av desse vala, fordi det slår av kontrollen for kvar nettstad den nettlesarprofilen besøkjer.

Reparer referansen i staden for nettlesarinnstillinga

Last inn den feilande flyten på nytt med nettverksloggen bevart og filtrer panelet på verten du mistenkjer. Konsollen namngir adressa og direktivet, noko som avgjer om ein førespurnad blei avvist eller oppgradert før du rører ein mal.

curl -sSI https://cdn.example.org/vendor.js | head -n 1
curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' -L https://cdn.example.org/vendor.js

To støttande kontrollar er verdt å kjenne, og ingen av dei erstattar reparasjonen. Ein Content-Security-Policy-header med upgrade-insecure-requests får nettlesaren til å skrive om http-underressursadresser før dei forlèt sida, noko som fangar gamle referansar du enno ikkje har funne. Den omskrivne førespurnaden mislukkast framleis når målverten ikkje tilbyr HTTPS, så headeren endrar berre kva adresse nettlesaren prøver. HSTS verkar per vert, noko som betyr at ein policy på ditt eige domene ikkje gjer noko for eit CDN frå tredjepart som aldri sende headeren. Etter ei malendring tømmer du sidehurtiglageret og søkjer i den rendra HTML-en etter det gamle vertsnamnet, fordi den same adressa også kan kome via ein del, ein omsetjingsstreng eller eit databasefelt.

Følg også omdirigeringar, fordi ei kjede som startar på https:// kan lande på ein http://-stad og nettlesaren vurderer det siste hoppet. Den -L forma av den andre kommandoen ovanfor skriv ut den effektive adressa for deg. Viss det siste hoppet er rein http, er referansen framleis feil, sjølv om lenkja du redigerte såg fin ut.

Stadfest sida med konsollen og nettverkspanelet

Last inn på nytt med hurtiglageret deaktivert og gå gjennom flyten igjen, inkludert knappane som lastar innhald ved behov. Ei første sideinnlasting gøymer late widgetar, kartflisar og spelarskript som først dukkar opp etter eit klikk. Konsollen bør ikkje ha nokon postar om blanda innhald, og kvar rad du rørte bør vise https. Ta vare på konsollen og førespurnadsrada før du lukkar saka, fordi den tilstanden er vanskeleg å attskape etter neste utrulling.

Når ressursen tilhøyrer nokon andre, sender du fire ting: den nøyaktige adressa, førespurnadstypen, konsollteksten og sida der han blir vist. Sladd sesjonsidentifikatorar i alt du limer inn i ei sak. Ein rapport som berre seier at bilete er øydelagde gjev eigaren ingenting å søkje etter.

Tunnelen gjer framleis sin eigen jobb medan rettinga ligg i referansen som laga førespurnaden. Søk i malen og leverandørpakken etter vertsnamnet ein gong til etter utrullinga, og lukk saka først når ingen blokkert post om blanda innhald er att i konsollen.

Relaterte artiklar