Ograničite prepisivanje sadržaja kroz proxy pomoću no-transform i HTTPS
Koristite no-transform za iskazivanje HTTP politike sadržaja i HTTPS za zaštitu veze preglednika od izmjene stranice na putu.
Proxy koji transformira sadržaj može promijeniti odgovor na putu do preglednika: ponovno komprimirati sliku, prepisati oznake ili umetnuti prateći JavaScript. Stranica koja radi na jednoj mreži i na drugoj dobije nepoznate oznake možda se susreće upravo s takvim ponašanjem posrednika.
Za stranicu koju upravljate, HTTP pruža izričitu direktivu odgovora:
Cache-Control: no-transform
RFC 9111 zahtijeva da posrednik koji primi ovu direktivu odgovora ostavi sadržaj netransformiranim, bez obzira na to implementira li taj posrednik predmemoriju. To je relevantno za ponovnu kompresiju slika i umetanje oznaka, a ne samo za to hoće li objekt biti pohranjen.
Zadržite to uz postojeću politiku predmemorije
Ako odgovor već ima direktive predmemorije, dodajte zahtjev namjerno umjesto da odbacite ostatak politike. Na primjer, javno predmemoriran resurs može imati:
Cache-Control: public, max-age=3600, no-transform
Ovaj primjer zadržava politiku svježine od jednog sata uz zabranu transformacije sadržaja. no-transform ne podrazumijeva no-store niti isključuje uobičajenu obradu prijenosa. Postavite ga na odgovore čiji je izvorni sadržaj važan, uključujući zasebne odgovore sa slikama gdje je to primjereno.
Direktiva djeluje kroz usklađenost posrednika. Ona kriptografski ne sprječava mrežni uređaj da zanemari uputu.
Zaštitite i prijenos
HTTPS pregledniku daje vezu s autentifikacijom i zaštitom integriteta prema njegovom TLS partneru. Obični proxy operatera koji propušta šifrirani promet ne može tiho umetnuti skriptu u tu zaštićenu vezu. Zadržite provjeru certifikata; lokalno pouzdan inspekcijski proxy koji prekida TLS drugačiji je raspored.
Poslužujte stranicu i njezine zavisne resurse preko HTTPS-a. Preusmjeravajte HTTP posjetitelje na HTTPS i razmotrite HSTS za implementaciju koja ga može dosljedno podržavati. Samo preusmjeravanje počinje nezaštićenom HTTP razmjenom za posjetitelja koji je koristio HTTP URL; prethodno naučena ili unaprijed učitana HSTS politika mijenja taj početni izbor.
Blokiranje umetnute skripte može smanjiti njezine vidljive učinke, ali odgovor već može sadržavati izmijenjeni HTML ili prepisane URL-ove slika. Zamjena jednog starog naziva funkcije, dodavanje neobičnog komentara ili mapiranje povijesne adrese umetanja ne uspostavlja integritet sadržaja za sljedećeg posrednika.
Kada istražujete prijavu, usporedite primljeni odgovor s namjeravanim sadržajem izvora i utvrdite gdje TLS završava. Taj je dokaz korisniji od tretiranja svake nepoznate skripte kao greške u vlastitom aplikacijskom kodu stranice.