HSTS ja turvapäised sinu veebisaidi jaoks
Iga lehega saadab su veebiserver kaasa päised (headers): lühikesed read juhistega brauserile. Need määravad osaliselt, kui turvaliselt brauser su veebilehega ümber käib. Siit saad teada, mis on HSTS, millised teised turvapäised on olemas ning kuidas neid seadistada ja testida.
Kõigepealt peab su veebilehel olema toimiv sertifikaat ja külastajad tuleb suunata https-le. Selle kohta loe artiklitest SSL-sertifikaadi aktiveerimine, uuendamine ja probleemide lahendamine ja Külastajate kohustuslik suunamine https-le.
Mida teeb HSTS?
Https-le suunamisel on üks nõrk hetk: esimene päring http kaudu käib veel krüpteerimata. Keegi samas võrgus, näiteks avalikus wifis, saab selle päringu pealt kuulata. HSTS (HTTP Strict Transport Security) lahendab selle. Su veebileht saadab https kaudu kaasa selle päise:
Strict-Transport-Security: max-age=31536000
Brauser jätab siis meelde, et su veebilehte tohib avada ainult https kaudu. Kui külastaja hiljem kirjutab http://, muudab brauser selle ise https-ks, enne kui midagi võrku liigub. HSTS-päist, mis tuleb tavalise http kaudu, brauser eirab.
| Osa | Tähendus |
|---|---|
max-age | Kui kaua brauser seda meeles peab, sekundites. Internet.nl test loeb vähemalt ühe aasta (31536000) piisavaks. |
includeSubDomains | Kehtib ka kõigi alamdomeenide kohta, näiteks shop.sinudomeen.nl ja mail.sinudomeen.nl. |
preload | Taotled lisamist nimekirja, mis on brauseritesse sisse ehitatud (hstspreload.org). Siis on kaitstud isegi kõige esimene külastus. Selleks on vaja muuhulgas ühte aastat, includeSubDomains ja https-i kõigil alamdomeenidel. Sealt uuesti eemaldumine võtab kaua aega. |
max-age=0 | Kustutab meeldejäetud juhise järgmisel külastusel https kaudu. |
includeSubDomains-iga kehtib see ka iga alamdomeeni kohta, näiteks vana kaamera- või printerilehe kohta, millel pole sertifikaati. Seepärast ehita see üles järk-järgult: alusta lühikese max-age väärtusega, näiteks ühe päevaga (86400), kontrolli, kas kõik töötab, ja tõsta järk-järgult aastani.HSTS WebOké juures
Enamikus meie serverites saadab veebiserver HSTS vaikimisi kaasa iga veebilehega, mis avatakse https kaudu: Strict-Transport-Security: max-age=31536000. See on üks aasta, ilma includeSubDomains ja ilma preload-ita. Selleks ei pea sa midagi tegema. Mõnel serveril see vaikimisi sisse ei lülitu; seal lülitad selle ise sisse. Kas su veebileht juba saadab HSTS-i ja millise max-age väärtusega, näed brauseri arendajatööriistadest või internet.nl testist (vaata allpool).
HSTS-lüliti DirectAdminis
DirectAdminis mine jaotisesse Domeenid (Domains) ja klõpsa oma domeeninimel. Kui Turvaline SSL-ühendus on sisse lülitatud, näed HSTS-i juures lülitit Luba HTTP Strict Transport Security. Seejärel klõpsa salvestamiseks nupul Muuda. Kuidas see samm-sammult käib, loe artiklist Külastajate alati https-le suunamine.
Kui su veebileht juba saadab HSTS-i kaasa, siis seda lülitit sul vaja ei lähe. Lülita see sisse ainult siis, kui su veebileht veel HSTS-i ei saada. Seadista HSTS ühes kohas: kas DirectAdminis või failis .htaccess, mitte mõlemas. Kui brauser saab kaks HSTS-päist, kasutab ta ainult esimest.
Teised turvapäised
| Päis | Mille vastu | Väärtus, millest alustada |
|---|---|---|
X-Content-Type-Options | Brauser hakkab ise aimama, mis fail on, mistõttu üles laaditud "pilti" saab käivitada skriptina. | nosniff (ainus kehtiv väärtus) |
Content-Security-Policy: frame-ancestors või X-Frame-Options | Clickjacking: mõni teine veebileht laadib su lehe nähtamatult raami (frame), nii et külastajad klõpsavad märkamatult sinu nuppudel. | frame-ancestors 'self' või vanem päis X-Frame-Options: SAMEORIGIN |
Referrer-Policy | Teisele veebilehele klõpsates saadab brauser kaasa eelmise lehe aadressi, mõnikord koos otsingusõna või tellimusnumbriga selles. | strict-origin-when-cross-origin, või rangemalt same-origin või no-referrer. Internet.nl loeb heaks ainult ranged väärtused. |
Permissions-Policy | Määrab, milliseid brauserifunktsioone su leht ja sisestatud raamid tohivad kasutada, näiteks kaamerat, mikrofoni ja asukohta. | camera=(), microphone=(), geolocation=() lülitab need kolm välja. Kui su veebileht kasutab mõnda neist funktsioonidest, jäta see välja. |
Content-Security-Policy (täielik) | Piirab, millistest kohtadest tohivad skriptid, stiilid ja pildid laadida. See muudab sisestatud pahatahtlikud skriptid (XSS) palju raskemaks. | Igale veebilehele eraldi kohandatud. Väldi väärtusi unsafe-inline, unsafe-eval ja metamärke (wildcards). |
Seadistamine failis .htaccess
Lisa need read faili .htaccess algusesse oma domeeni kausta public_html. Tee failist esmalt koopia.
<IfModule mod_headers.c> Header always set X-Content-Type-Options "nosniff" Header always set Content-Security-Policy "frame-ancestors 'self'" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()" # Ainult juhul, kui su veebileht veel ei saada HSTS-i kaasa (vaata ülalpool): # Header always set Strict-Transport-Security "max-age=31536000" </IfModule>
Lisa includeSubDomains alles siis, kui oled kindel, et igal alamdomeenil on https. Kui kasutad WordPressi, saad päiseid seadistada ka pistikprogrammiga. Vali tuntud pistikprogramm, mida ikka veel uuendatakse, ja seadista iga päis ühes kohas: kas pistikprogrammis või failis .htaccess.
Content-Security-Policy-Report-Only. See ei blokeeri midagi, aga näitab brauseri konsoolis, mis blokeeritaks. Kahtluse korral jäta see oma veebiarendaja hooleks või alusta ainult väärtusega frame-ancestors.Testimine
- Internet.nl: sisesta oma domeen veebilehe testi lehel internet.nl.
- Su brauser: ava oma veebileht, vajuta F12 (või vali Uuri), mine vahelehele Võrk (Network), laadi leht uuesti ja klõpsa esimesel päringul. Jaotises Vastuse päised (Response Headers) näed kõike, mida su server kaasa saadab.
- Käsurida:
curl -sI https://sinudomeen.nl/näitab päiseid.
Kontrolli pärast iga muudatust, kas su veebileht, vormid ja makselehekülg ikka töötavad. Hoia lisaks oma CMS, pistikprogrammid ja teemad uuendatuna. Vaata WordPressi wp-login.php turvamine.
Loe edasi
- MDN: Strict-Transport-Security (inglise keeles)
- MDN: Content-Security-Policy (inglise keeles)
- MDN: Permissions-Policy (inglise keeles)
- HSTS eellaadimise nimekiri (inglise keeles)
