Smíšený obsah za VPN: opravte zdroj, ne tunel
Zámek popisuje dokument, ne skripty, které načítá. Přečtěte si konzoli, ponechte blokování, opravte odkaz u jeho zdroje a poté stránku znovu otestujte.
Stránka HTTPS, která načítá skripty přes HTTP, činí dva požadavky se dvěma různými úrovněmi ochrany a zámek popisuje jen první z nich. Tunel to nemění, protože chrání nosič, nikoli vlastní schéma zdroje. Prohlížeč vám už říká, který požadavek selhal, pokud čtete konzoli místo adresního řádku. Tři kontroly vás dostanou od částečně fungující stránky ke skutečné opravě.
Čtěte požadavek, ne adresní řádek
Dokument načtený přes HTTPS může odkazovat na skript, šablonu stylů, písmo nebo rámec přes obyčejné HTTP. Tento odkaz je samostatný požadavek a právě na něj si prohlížeč stěžuje. Ochrana hlavního dokumentu se do něj zpětně nepřenáší a tunel, který nese oba toky, nemění ani jedno schéma. Stránka tedy může být zároveň skutečně zabezpečená i skutečně rozbitá.
Nazvat zdroj pouhým vloženým souborem z jeho nahrazení nečiní neškodné.
Pokud lze nezabezpečený obsah skriptu po cestě změnit a poté spustit, může změnit chování stránky, což je větší problém než kosmetická závada. Obrázky nesou menší, ale skutečné riziko, když jsou po cestě upraveny. Zámek o ničem nelže. Odpovídá na užší otázku, než jakou jste mu položili.
Vězte, které zdroje se blokují a které se povyšují
Prohlížeče neberou každý typ zdroje stejně. pokyny pro smíšený obsah oddělují požadavky povyšované na HTTPS od požadavků zcela blokovaných, přičemž skripty, šablony stylů a programové požadavky jsou na blokované straně, zatímco obrázky a média mohou být místo toho povýšeny nebo označeny.
Tento rozdíl vysvětluje matoucí hlášení. Stránka s blokovaným skriptem ztratí funkci úplně, zatímco stránka s povýšeným obrázkem vypadá dobře a tiše změnila svůj požadavek. Dokumentované kategorie mají také výjimky, takže nepředpokládejte, že každá URL daného typu se úspěšně povýší. Čtěte, co konzole říká o konkrétním požadavku, místo abyste usuzovali z přípony souboru.
Blokovaný widget není důkaz, že tunel selhal. Je to důkaz, že prohlížeč udělal svou práci.
Opravte odkaz u jeho zdroje
Pro vlastníka stránek patří oprava tam, kde byla nezabezpečená URL zapsána: šablona, šablona stylů, skript, který skládá URL, nebo komponenta třetí strany. Změna viditelné adresy stránky nechává to všechno nedotčené. Hledejte v zdroji hostitele a opravte každý odkaz, ne jen ten jediný, který konzole náhodou pojmenovala.
Poté ověřte, že se zdroj skutečně poskytuje přes HTTPS s platnou identitou, protože záměna schématu nedokáže vyčarovat službu, která tam nikdy nebyla publikována.
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1Sledujte také přesměrování, protože odkaz začínající na HTTPS může stále skončit na cestě doručení otevřeným textem. Když závislost jednoduše nemá dostupné zabezpečené doručení, odeberte ji nebo ji nahraďte běžným procesem změny, místo abyste vydávali obchvat. Pro uživatele ponechte ochrany prohlížeče zapnuté a nahlaste vlastníkovi stránek URL zdroje, jeho typ a zprávu z konzole. Nikdy nešiřte pokyny, které zaměstnancům říkají, aby pro jednu stránku povolili nezabezpečený obsah, protože tato výjimka přežije incident, který ji vyvolal.
Otestujte stránku znovu tak, jak se jí uživatelé dotýkají
Procvičte operace, které načítají zdroje na vyžádání, ne jen první dokument. Stránky stahují další kód, data a soubory ke stažení po stisknutí tlačítka a tyto požadavky jsou často ty nezabezpečené. Potvrďte konkrétní požadavky a viditelné chování se zapnutou ochranou. Test, který začíná uvolněným profilem prohlížeče, vám nemůže ukázat, co vidí běžný uživatel.
Tunel má stále svou práci a tou prací je síťový přístup, nikoli integrita stránky.
Jakmile provoz opustí koncový bod tunelu, žádný zbývající HTTP požadavek nezískal od nosiče nic. Opravte cestu ke zdroji a ponechte vynucení v prohlížeči na místě. Považovat další transportní vrstvu za opravu nezabezpečené závislosti je způsob, jak tým skončí se skriptem podpory, který vypíná kontrolu, jež fungovala správně.