Zmiešaný obsah za VPN: opravte zdroj, nie tunel
Zámok opisuje dokument, nie skripty, ktoré načítava. Prečítajte si konzolu, ponechajte blokovanie, opravte odkaz v jeho zdroji a potom stránku znova otestujte.
Stránka HTTPS, ktorá načítava skripty cez HTTP, vykonáva dve požiadavky s dvoma rôznymi úrovňami ochrany a zámok opisuje len prvú z nich. Tunel to nemení, pretože chráni nosič, nie vlastnú schému zdroja. Prehliadač vám už hovorí, ktorá požiadavka zlyhala, ak čítate konzolu namiesto adresného riadka. Tri kontroly vás dostanú z čiastočne fungujúcej stránky k skutočnej oprave.
Čítajte požiadavku, nie adresný riadok
Dokument načítaný cez HTTPS môže odkazovať na skript, štýlový list, písmo alebo rám cez obyčajný HTTP. Ten odkaz je samostatná požiadavka a práve naň sa prehliadač sťažuje. Ochrana hlavného dokumentu sa doň späť neprenáša a tunel, ktorý nesie oba toky, nemení ani jednu schému. Stránka preto môže byť súčasne skutočne zabezpečená aj skutočne pokazená.
Nazvať zdroj iba vloženým súborom nečiní jeho nahradenie neškodným.
Ak sa nebezpečný obsah skriptu dá po ceste zmeniť a potom spustiť, môže zmeniť správanie stránky, čo je väčší problém ako kozmetická závada. Obrázky nesú menšie, ale skutočné riziko, keď sa po ceste upravia. Zámok o ničom neklame. Odpovedá na užšiu otázku, než akú ste mu položili.
Vedzte, ktoré zdroje sa blokujú a ktoré sa povyšujú
Prehliadače neberú každý typ zdroja rovnako. usmernenia o zmiešanom obsahu oddeľujú požiadavky povyšované na HTTPS od požiadaviek úplne blokovaných, pričom skripty, štýlové listy a programové požiadavky sú na blokovanej strane, zatiaľ čo obrázky a médiá môžu byť namiesto toho povýšené alebo označené.
Tento rozdiel vysvetľuje mätúce hlásenia. Stránka s blokovaným skriptom úplne stratí funkciu, zatiaľ čo stránka s povýšeným obrázkom vyzerá dobre a potichu zmenila svoju požiadavku. Dokumentované kategórie majú aj výnimky, takže nepredpokladajte, že každá URL daného typu sa úspešne povýši. Čítajte, čo konzola hovorí o konkrétnej požiadavke, namiesto toho, aby ste usudzovali z prípony súboru.
Blokovaný widget nie je dôkazom, že tunel zlyhal. Je to dôkaz, že prehliadač urobil svoju prácu.
Opravte odkaz v jeho zdroji
Pre vlastníka stránky patrí oprava tam, kde bola nebezpečná URL zapísaná: šablóna, štýlový list, skript, ktorý skladá URL, alebo komponent tretej strany. Zmena viditeľnej adresy stránky necháva to všetko nedotknuté. Hľadajte v zdroji hostiteľa a opravte každý odkaz, nielen ten jediný, ktorý konzola náhodou pomenovala.
Potom overte, že zdroj sa skutočne poskytuje cez HTTPS s platnou identitou, pretože výmena schémy nedokáže vyčariť službu, ktorá tam nikdy nebola publikovaná.
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1Sledujte aj presmerovania, pretože odkaz začínajúci na HTTPS môže stále skončiť na ceste doručenia s otvoreným textom. Keď závislosť jednoducho nemá dostupné zabezpečené doručenie, odstráňte ju alebo nahraďte bežným procesom zmeny, namiesto toho, aby ste vydávali obchádzku. Pre používateľa ponechajte ochrany prehliadača zapnuté a nahláste vlastníkovi stránky URL zdroja, jeho typ a správu z konzoly. Nikdy nešírte pokyny, ktoré zamestnancom hovoria, aby pre jednu stránku povolili nebezpečný obsah, pretože tá výnimka prežije incident, ktorý ju vyvolal.
Otestujte stránku znova tak, ako sa jej používatelia dotýkajú
Precvičte operácie, ktoré načítavajú zdroje na požiadanie, nielen prvý dokument. Stránky sťahujú ďalší kód, údaje a súbory na prevzatie po stlačení tlačidla a tie požiadavky sú často tie nebezpečné. Potvrďte konkrétne požiadavky a viditeľné správanie so zapnutou ochranou. Test, ktorý začína uvoľneným profilom prehliadača, vám nemôže ukázať, čo vidí bežný používateľ.
Tunel má stále svoju vlastnú prácu a tou prácou je sieťový prístup, nie integrita stránky.
Keď prevádzka opustí koncový bod tunela, žiadne zostávajúce načítanie HTTP nezískalo od nosiča nič. Opravte cestu zdroja a ponechajte vynucovanie v prehliadači na mieste. Považovať ďalšiu transportnú vrstvu za opravu nebezpečnej závislosti je spôsob, akým tím skončí so skriptom podpory, ktorý vypína kontrolu, ktorá fungovala správne.