Přihlašovací formulář přes nešifrované HTTP
Co to je
Někde na vašem webu je formulář s polem type="password" a jeho akce (action=) směřuje na nešifrované http:// URL. Zadané heslo putuje přes síť otevřeně.
Typicky to vypadá takto:
- Jde o starší přihlašovací obrazovku (často hosting administrace, intranet, archivní instalace).
- Web má HTTPS, ale uvnitř je
<form action="http://...">s hardcoded HTTP URL. - Subdoména (
old.example.cz,admin.example.cz) nemá certifikát.
Proč je to problém
Když uživatel zadá heslo a stiskne Enter, prohlížeč ho pošle v plain textu. Kdokoliv mezi (nedůvěryhodná Wi-Fi, ISP, hostingový soused, kompromitovaný router) heslo přečte. Pokud je formulář na jiném hostnamu než stránka samotná, prohlížeč bude varovat — ale uživatel typicky klikne na „Pokračovat“.
Chrome od verze 86 ukazuje „Tento formulář není zabezpečený“ přímo pod inputem. Konverze padá, lidé se neregistrují.
Jak to opravit
Krok 1 — opravit action=
Najděte v HTML všechny <form> tagy a změňte action="http://..." na action="https://..." nebo lépe na relativní cestu (action="/login") — ta podědí protokol stránky.
Krok 2 — force HTTPS na celém webu
I když opravíte konkrétní formulář, návštěvník se k němu může dostat přes http://. Server musí redirectovat — viz Web běží jen na HTTP.
Krok 3 — HSTS
Po nasazení HSTS prohlížeč přestane vůbec navazovat HTTP spojení — i kdyby uživatel napsal http://example.cz. Detail viz Strict-Transport-Security.
Krok 4 — subdomény
Pokud admin nebo legacy je na subdoméně, dejte certifikát i na ni. Wildcard certifikát od Let’s Encrypt (*.example.cz) řeší vše.
Ověření
# v prohlížeči otevřít DevTools → Network → submit formulář
# request URL musí začínat https://