HSTS un drošības galvenes Jūsu vietnei
Katrai lapai Jūsu tīmekļa serveris nosūta galvenes (headers): īsas rindas ar norādījumiem pārlūkprogrammai. Tās daļēji nosaka, cik droši pārlūkprogramma apstrādā Jūsu vietni. Šeit uzzināsiet, kas ir HSTS, kādas vēl ir drošības galvenes un kā tās iestatīt un pārbaudīt.
Vispirms Jūsu vietnei jābūt derīgam sertifikātam un apmeklētāji jānovirza uz https. Par to varat lasīt rakstos SSL sertifikāta aktivizēšana, atjaunošana un problēmu risināšana un Apmeklētāju obligāta novirzīšana uz https.
Ko dara HSTS?
Novirzīšanai uz https ir viens vājš brīdis: pirmais pieprasījums caur http vēl ir nešifrēts. Kāds tajā pašā tīklā, piemēram, publiskajā wifi, var šo pieprasījumu pārtvert. HSTS (HTTP Strict Transport Security) to atrisina. Jūsu vietne caur https nosūta šo galveni:
Strict-Transport-Security: max-age=31536000
Pārlūkprogramma tad atceras, ka Jūsu vietni drīkst atvērt tikai caur https. Ja apmeklētājs vēlāk ieraksta http://, pārlūkprogramma to pati pārveido uz https, pirms vēl kaut kas nonāk tīklā. HSTS galveni, kas saņemta caur parastu http, pārlūkprogramma ignorē.
| Sastāvdaļa | Nozīme |
|---|---|
max-age | Cik ilgi pārlūkprogramma to atceras, sekundēs. Internet.nl tests vismaz gadu (31536000) uzskata par pietiekamu. |
includeSubDomains | Attiecas arī uz visiem apakšdomēniem, piemēram, shop.jusudomens.lv un mail.jusudomens.lv. |
preload | Jūs pieprasāt iekļaušanu sarakstā, kas ir iebūvēts pārlūkprogrammās (hstspreload.org). Tad pat pats pirmais apmeklējums ir aizsargāts. Tam, cita starpā, nepieciešams gads, includeSubDomains un https visos apakšdomēnos. Izņemšana no saraksta aizņem ilgu laiku. |
max-age=0 | Dzēš iepriekš saglabāto norādījumu nākamajā apmeklējumā caur https. |
includeSubDomains tas attiecas arī uz katru apakšdomēnu, piemēram, vecu kameras vai printera lapu bez sertifikāta. Tāpēc veidojiet to pakāpeniski: sāciet ar īsu max-age, piemēram, vienu dienu (86400), pārbaudiet, vai viss darbojas, un pakāpeniski palieliniet līdz gadam.HSTS slēdzis DirectAdmin
DirectAdmin dodieties uz Domains un noklikšķiniet uz Jūsu domēna nosaukuma. Ja Secure SSL Connection ir ieslēgts, pie HSTS redzēsiet slēdzi Enable HTTP Strict Transport Security. Pēc tam noklikšķiniet Modify, lai saglabātu. Kā to izdarīt soli pa solim, varat lasīt rakstā Apmeklētāju vienmēr novirzīt uz https.
Ja vēlaties uzzināt, kādu max-age Jūsu vietne nosūta, apskatiet pārlūkprogrammas izstrādātāju rīkus vai internet.nl testu (skatīt zemāk). Iestatiet HSTS tikai vienā vietā: DirectAdmin vai .htaccess failā, nevis abās. Ja pārlūkprogramma saņem divas HSTS galvenes, tā izmanto tikai pirmo.
Citas drošības galvenes
| Galvene | Pret ko | Sākotnējā vērtība |
|---|---|---|
X-Content-Type-Options | Pārlūkprogramma pati mēģina uzminēt, kāds ir fails, tāpēc augšupielādēts "attēls" var tikt izpildīts kā skripts. | nosniff (vienīgā derīgā vērtība) |
Content-Security-Policy: frame-ancestors vai X-Frame-Options | Clickjacking: cita vietne neredzami ielādē Jūsu lapu rāmī, lai apmeklētāji nemanot klikšķinātu uz Jūsu pogām. | frame-ancestors 'self', vai vecāka galvene X-Frame-Options: SAMEORIGIN |
Referrer-Policy | Noklikšķinot uz citas vietnes, pārlūkprogramma nosūta iepriekšējās lapas adresi, dažkārt ar meklēšanas vārdu vai pasūtījuma numuru tajā. | strict-origin-when-cross-origin, vai stingrāk same-origin vai no-referrer. Internet.nl par labām uzskata tikai stingrās vērtības. |
Permissions-Policy | Nosaka, kādas pārlūkprogrammas funkcijas drīkst izmantot Jūsu lapa un iegultie rāmji, piemēram, kamera, mikrofons un atrašanās vieta. | camera=(), microphone=(), geolocation=() izslēdz šīs trīs. Ja Jūsu vietne izmanto kādu no šīm funkcijām, to izlaidiet. |
Content-Security-Policy (pilna) | Ierobežo, no kurām vietām drīkst ielādēt skriptus, stilus un attēlus. Tas apgrūtina ļaunprātīgu ievietotu skriptu (XSS) darbību. | Pielāgota katrai vietnei. Izvairieties no unsafe-inline, unsafe-eval un aizstājējzīmēm (wildcards). |
Iestatīšana .htaccess failā
Ievietojiet šīs rindas faila .htaccess sākumā, kas atrodas Jūsu domēna mapē public_html. Vispirms izveidojiet faila kopiju.
<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=()" # Tikai ja HSTS slēdzis DirectAdmin ir izslēgts: # Header always set Strict-Transport-Security "max-age=31536000" </IfModule>
Pievienojiet includeSubDomains tikai tad, kad esat pārliecināti, ka katram apakšdomēnam ir https. Ja izmantojat WordPress, galvenes varat iestatīt arī ar spraudni. Izvēlieties zināmu spraudni, kas tiek regulāri atjaunināts, un katru galveni iestatiet tikai vienā vietā: spraudnī vai .htaccess failā.
Content-Security-Policy-Report-Only. Tā neko nebloķē, bet pārlūkprogrammas konsolē parāda, kas tiktu bloķēts. Ja neesat pārliecināti, uzticiet to savam tīmekļa izstrādātājam, vai sāciet tikai ar frame-ancestors.Pārbaude
- Internet.nl: ievadiet savu domēnu vietnes testā internet.nl.
- Jūsu pārlūkprogramma: atveriet savu vietni, nospiediet F12 (vai izvēlieties Inspect), dodieties uz cilni Network, pārlādējiet lapu un noklikšķiniet uz pirmā pieprasījuma. Sadaļā Response Headers redzēsiet visu, ko Jūsu serveris nosūta.
- Komandrinda:
curl -sI https://jusudomens.lv/parāda galvenes.
Pēc katras izmaiņas pārbaudiet, vai Jūsu vietne, veidlapas un maksājumu lapa joprojām darbojas. Papildus turiet atjauninātu savu CMS, spraudņus un tēmas. Skatiet WordPress wp-login.php aizsardzība.
Lasiet vairāk
- MDN: Strict-Transport-Security (angļu valodā)
- MDN: Content-Security-Policy (angļu valodā)
- MDN: Permissions-Policy (angļu valodā)
- HSTS priekšielādes saraksts (angļu valodā)
