HTTPS-sivu, joka lataa skriptejä HTTP:n yli, tekee kaksi pyyntöä kahdella eri suojatasolla, ja lukko kuvaa vain ensimmäisen. Tunneli ei muuta sitä, koska se suojaa kuljettajaa eikä resurssin omaa skeemaa. Selain kertoo jo, mikä pyyntö epäonnistui, jos luet konsolin etkä osoitepalkkia. Kolme tarkistusta vievät sinut osittain toimivalta sivulta todelliseen korjaukseen.

Lue pyyntö, älä osoitepalkkia

HTTPS:n kautta haettu asiakirja voi viitata skriptiin, tyylitiedostoon, fonttiin tai kehykseen tavallisen HTTP:n kautta. Tämä viittaus on erillinen pyyntö, ja juuri siitä selain valittaa. Pääasiakirjan suoja ei matkusta siihen takaisin, eikä molemmat virrat kuljettava tunneli muuta kumpaakaan skeemaa. Sivu voi siis olla samanaikaisesti aidosti suojattu ja aidosti rikki.

Resurssin kutsuminen vain liitetyksi tiedostoksi ei tee sen korvaamisesta vaaratonta.

Jos suojaamattoman skriptin sisältöä voidaan muuttaa matkalla ja sitten suorittaa, se voi muuttaa sivun käyttäytymistä, mikä on suurempi ongelma kuin kosmeettinen vika. Kuvat kantavat pienemmän mutta todellisen riskin, kun niitä muutetaan matkalla. Lukko ei valehtele mistään. Se vastaa kapeampaan kysymykseen kuin se, jonka esitit sille.

Tiedä, mitkä resurssit estetään ja mitkä korotetaan

Selaimet eivät kohtele jokaista resurssityyppiä samalla tavalla. sekasisällön ohjeet erottavat HTTPS:ään korotettavat pyynnöt täysin estettävistä, ja skriptit, tyylitiedostot ja ohjelmalliset pyynnöt ovat estetyllä puolella, kun taas kuvat ja media voidaan sen sijaan korottaa tai merkitä.

Tämä ero selittää hämmentävät raportit. Sivu, jonka skripti on estetty, menettää ominaisuuden kokonaan, kun taas sivu, jonka kuva on korotettu, näyttää hyvältä ja on hiljaa muuttanut pyyntöään. Dokumentoiduilla luokilla on myös poikkeuksia, joten älä oleta, että jokainen tietyn tyypin URL korotetaan onnistuneesti. Lue, mitä konsoli sanoo tietystä pyynnöstä, sen sijaan että päättelet tiedostopäätteestä.

Estetty widget ei ole todiste siitä, että tunneli epäonnistui. Se on todiste siitä, että selain teki työnsä.

Korjaa viittaus sen lähteessä

Sivuston omistajalle korjaus kuuluu sinne, missä suojaamaton URL kirjoitettiin: malli, tyylitiedosto, URL-osoitteita kokoava skripti tai kolmannen osapuolen komponentti. Näkyvän sivun osoitteen muuttaminen jättää kaiken tämän koskemattomaksi. Etsi lähdekoodista isäntä ja korjaa jokainen viittaus, älä vain sitä yhtä, jonka konsoli sattui nimeämään.

Vahvista sitten, että resurssia todella tarjoillaan HTTPS:n yli kelvollisella identiteetillä, koska skeeman vaihto ei voi loihtia palvelua, jota sinne ei koskaan julkaistu.

grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1

Seuraa myös uudelleenohjauksia, koska HTTPS:llä alkava viittaus voi silti päätyä selkokieliselle toimituspolulle. Kun riippuvuudella ei yksinkertaisesti ole turvallista toimitusta, poista tai korvaa se tavallisen muutosprosessin kautta sen sijaan, että toimittaisit kiertotien. Käyttäjälle jätä selaimen suojaukset päälle ja raportoi sivuston omistajalle resurssin URL, sen tyyppi ja konsolin viesti. Älä koskaan levitä ohjeita, joissa henkilöstöä kehotetaan sallimaan suojaamaton sisältö yhdelle sivulle, koska se poikkeus elää pidempään kuin sen aiheuttanut tapaus.

Testaa sivu uudelleen niin kuin käyttäjät koskettavat sitä

Harjoittele toimintoja, jotka lataavat resursseja pyynnöstä, älä vain ensimmäistä asiakirjaa. Sivut hakevat lisäkoodia, dataa ja latauksia painikkeen painalluksen jälkeen, ja nämä pyynnöt ovat usein niitä suojaamattomia. Vahvista tietyt pyynnöt ja näkyvä käyttäytyminen suojauksen ollessa edelleen päällä. Testi, joka alkaa löysennetyllä selainprofiililla, ei voi näyttää sinulle, mitä tavallinen käyttäjä näkee.

Tunnelilla on edelleen oma työnsä, ja se työ on verkkoyhteys, ei sivun eheys.

Kun liikenne on poistunut tunnelin päätepisteestä, jäljellä oleva HTTP-haku ei ole voittanut mitään kuljettajalta. Korjaa resurssin polku ja pidä selaimen valvonta paikallaan. Uuden siirtokerroksen pitäminen suojaamattoman riippuvuuden korjauksena on se tapa, jolla tiimi päätyy tukipöydän skriptiin, joka kytkee pois ohjauksen, joka toimi oikein.

Aiheeseen liittyvät artikkelit