Šis straipsnis aprašo problemą, kuri kyla, kai jūsų svetainės lankytojai prašo saugios interneto puslapio, kuriame yra nesaugūs elementai.
Problema
Kai jūsų svetainės lankytojai prašo puslapį naudodami saugų https:// ryšį, interneto naršyklės adreso juostoje gali atsirasti sugedęs spynos simbolis. Be to, jie gali gauti perspėjimą savo naršyklėje:
- Mozilla Firefox: „Šios svetainės ryšys nėra visiškai saugus, nes jame yra nesuskaitomi elementai (pvz., paveikslai).”
- Microsoft Internet Explorer: „Ar norite peržiūrėti tik saugiai pristatytą tinklalapio turinį? Šiame tinklalapyje yra turinys, kuris nebus pristatytas naudojant saugų HTTPS ryšį, kas gali pakenkti viso tinklalapio saugumui.”
- Google Chrome: „Jūsų ryšys su example.com yra šifruotas 256 bitų šifravimu. Tačiau šiame puslapyje yra kiti resursai, kurie nėra saugūs. Šiuos resursus kitas gali peržiūrėti perduodant, ir juos gali modifikuoti puolėjas, keisdamas puslapio išvaizdą.”
Priežastis
Ši problema atsiranda, nes tinklalapis turi nuorodas į nesaugius elementus. Pavyzdžiui, apsvarstykite tinklalapį, kuriame yra šis HTML fragmentas:
<a href="http://www.example.com/images/picture.jpg">Peržiūrėti mano paveikslą</a>
Šiame HTML fragmente hiperlinkas nuorodo į nesaugų http:// resursą (failą .jpg). Jei vartotojas prašo šį puslapį naudodamas https:// ryšį, pats puslapis yra šifruotas, bet susietas paveikslėlio failas ne. Dėl šios priežasties puslapis turi saugų ir nesaugų turinį, ir naršyklė rodo vartotojui perspėjimo pranešimą.
Ši problema gali kilti bet kokio tipo su hiperlinku susijusio resurso failams: JavaScript biblioteka, CSS failas ir t.t.
Sprendimas
Svarstykite būdus išspręsti šią problemą:
1: Išsiųsti Content-Security-Policy atviroji galvą tiesiogiai iš tinklalapio serverio
Norėdami išspręsti šią problemą, galite išsiųsti Content-Security-Policy HTTP atviroji galvą. Ši galva nurodo naršyklėms atnaujinti nesaugius užklausimus į HTTPS.
Norėdami Apache tinklalapio serveriams Linux, įtraukite šias eilutes į .htaccess failą (arba failus), kuriuos naudojate savo tinklalapyje:
<IfModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;" </IfModule>
2: Išsiųsti Content-Security-Policy direktyvą iš puslapio šaltinių failų
Alternatyviai galite naudoti šią meta žymę jūsų svetainės puslapių šaltinių failuose:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Papildoma informacija
Jeigu jums reikia daugiau informacijos apie upgrade-insecure-requests direktyvą, apsilankykite https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests.
Ieškote patikimos apsaugos savo tinklalapiui? Gaukite tinkamą apsaugos lygį su mūsų SSL pasirinkimais.