Sisältöä muuntava välityspalvelin voi muuttaa vastausta matkalla selaimeen: pakata kuvan uudelleen, kirjoittaa merkintäkielen uudelleen tai lisätä tukevaa JavaScriptiä. Sivu, joka toimii yhdessä verkossa ja saa toisessa tuntematonta merkintää, saattaa kohdata juuri tämän välittäjän käyttäytymisen.

Hallitsemallesi sivustolle HTTP tarjoaa nimenomaisen vastausdirektiivin:

Cache-Control: no-transform

RFC 9111 edellyttää, että tämän vastausdirektiivin vastaanottava välittäjä jättää sisällön muuntamatta riippumatta siitä, toteuttaako välittäjä välimuistin. Se koskee kuvien uudelleenpakkausta ja merkinnän lisäämistä, ei vain sitä, tallennetaanko objekti.

Pidä se nykyisen välimuistikäytännön yhteydessä

Jos vastauksessa on jo välimuistidirektiivit, lisää vaatimus tarkoituksella sen sijaan, että hylkäisit käytännön loput. Esimerkiksi julkisesti välimuistiin tallennettavalla resurssilla voi olla:

Cache-Control: public, max-age=3600, no-transform

Tämä esimerkki säilyttää yhden tunnin tuoreuskäytännön ja kieltää samalla sisällön muuntamisen. no-transform ei tarkoita no-store eikä poista tavallista siirron käsittelyä käytöstä. Aseta se vastauksiin, joiden alkuperäinen sisältö on tärkeä, mukaan lukien erilliset kuvavastaukset tarpeen mukaan.

Direktiivi toimii välittäjän noudattaessa sitä. Se ei kryptografisesti estä verkossa olevaa laitetta jättämästä ohjetta huomiotta.

Suojaa myös siirto

HTTPS antaa selaimelle yhteyden, jossa on todentaminen ja eheyden suojaus sen TLS-vastapuoleen. Salattua liikennettä välittävä tavallinen operaattorin välityspalvelin ei voi hiljaa lisätä komentosarjaa tuohon suojattuun yhteyteen. Pidä varmennevahvistus käytössä; TLS:n päättävä paikallisesti luotettu tarkastusvälityspalvelin on eri järjestely.

Tarjoile sivu ja sen riippuvat resurssit HTTPS:n kautta. Ohjaa HTTP-kävijät HTTPS:ään ja harkitse HSTS:ää käyttöönotolle, joka voi tukea sitä johdonmukaisesti. Pelkkä uudelleenohjaus alkaa suojaamattomalla HTTP-vaihdolla kävijälle, joka käytti HTTP-osoitetta; aiemmin opittu tai esiladattu HSTS-käytäntö muuttaa tätä ensimmäistä valintaa.

Lisätyn komentosarjan estäminen voi vähentää sen näkyviä vaikutuksia, mutta vastauksessa voi jo olla muutettua HTML:ää tai uudelleenkirjoitettuja kuvaosoitteita. Yhden vanhan funktionimen korvaaminen, epätavallisen kommentin lisääminen tai historiallisen lisäysosoitteen kartoittaminen ei vahvista sisällön eheyttä seuraavalle välittäjälle.

Raporttia tutkiessasi vertaa vastaanotettua vastausta alkuperän tarkoitettuun sisältöön ja selvitä, missä TLS päättyy. Tämä näyttö on hyödyllisempää kuin pitää jokaista tuntematonta komentosarjaa sivuston oman sovelluskoodin virheenä.

Aiheeseen liittyvät artikkelit