4. modulis · 4.2
Jūsu tīmekļa vietne: https, HSTS un drošības galvenes
4. modulis: E-pasts, tīmekļa vietne un domēns · Lasīšanas laiks: 11 minūtes
Mērķis: Pēc šīs nodarbības Jūs varēsiet pārbaudīt savas tīmekļa vietnes pamata drošību: derīgu sertifikātu, novirzīšanu uz https, HSTS ar pareizu max-age vērtību, galvenās drošības galvenes un sava CMS atjaunināšanu.
Pamatjēdzieni: TLS sertifikāts, https, novirzīšana uz https, HSTS, max-age, includeSubDomains, preload, HTTP galvene, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy
Kas notiek, kad kāds atver Jūsu vietni
Ja klients adreses joslā ieraksta example.com, pārlūkprogramma pieprasa lapu no Jūsu tīmekļa servera. Šī saziņa notiek, izmantojot HTTP. Izmantojot https, ap to ir šifrēts savienojums: TLS. Tam Jūsu tīmekļa vietnei nepieciešams TLS sertifikāts (bieži vēl sauc par SSL sertifikātu). Sertifikāts pierāda, ka serveris patiešām pieder example.com, un šifrēšana nodrošina, ka neviens pa ceļam nevar lasīt līdzi vai kaut ko mainīt. Tas ir svarīgi publiskā wifi tīklā, kur Jūs nezināt, kas pārvalda tīklu (5.3. nodarbība).
Katrā atbildē serveris līdzi ar pašu lapu sūta arī virkni galveņu: īsas rindas ar informāciju un instrukcijām pārlūkprogrammai. Jūs tās neredzat ekrānā, bet tās lielā mērā nosaka, cik droši pārlūkprogramma apstrādā Jūsu vietni. Daļa no šīm galvenēm ir drošības galvenes. Šajā nodarbībā mēs izskatīsim četrus slāņus: sertifikātu, novirzīšanu, HSTS un galvenes. Pēc tam īsi aplūkosim Jūsu tīmekļa vietnes pašas atjaunināšanu.
1. slānis: derīgs sertifikāts
Sertifikāts ir kārtībā, ja tas atbilst trīs nosacījumiem:
- tas nav beidzies;
- to izdevusi uzticama izdevējiestāde (sertifikācijas iestāde, kuru pazīst pārlūkprogrammas, piemēram, Let's Encrypt vai komerciāls partneris);
- tas attiecas tieši uz to vārdu, ko apmeklētājs atver:
example.comunwww.example.com, ja izmantojat abus.
Gandrīz katrs mitināšanas pakalpojumu sniedzējs mūsdienās nodrošina bezmaksas sertifikātu, kas tiek automātiski pagarināts. Ja kaut kas noiet greizi, tas parasti ir tāpēc, ka domēna vārds norāda uz citu serveri, vai tāpēc, ka CAA ieraksts bloķē izdevēju (4.3. nodarbība).
Svarīgi zināt: slēdzenes ikona neko nepasaka par vietnes uzticamību. Tā norāda tikai to, ka savienojums ir šifrēts un ka sertifikāts atbilst adreses joslā redzamajam vārdam. Arī pikšķerēšanas vietnēm domēnā mijnbank-veilig.example ir slēdzenes ikona. Tāpēc 3.2. nodarbībā Jūs mācāties lasīt domēnu.
2. slānis: vienmēr novirzīt uz https
Ar sertifikātu vien nepietiek. Ja kāds atver http://example.com, piemēram, caur vecu saiti vai ierakstot tikai vārdu, viņam automātiski jānonāk https versijā. To sauc par novirzīšanu (redirect, parasti ar statusa kodu 301).
Pareiza secība ir šāda:
http://example.com -> https://example.com
https://example.com -> https://www.example.com (tikai, ja www izmantojat kā galveno adresi)
http://www.example.com -> https://www.example.comPievērsiet uzmanību pirmajai rindai: vispirms novirziet no http uz https tajā pašā vārdā, tikai pēc tam, ja nepieciešams, uz www. Tā pārlūkprogramma var saņemt arī HSTS instrukciju no kailā vārda. Internet.nl pārbauda tieši to.
Izplatīta kļūda ir dubulta novirzīšana: gan mitināšanas panelī, gan spraudnī vai .htaccess failā. Tas var izraisīt bezgalīgu ciklu ("pārāk daudz novirzīšanu"). Izmantojiet tikai vienu vietu.
3. slānis: HSTS
Novirzīšanai ir vājš brīdis: pats pirmais pieprasījums vēl notiek nešifrēti, izmantojot http. Uzbrucējs tajā pašā tīklā var pārtvert šo vienu pieprasījumu un paturēt apmeklētāju viltotā, nešifrētā versijā. Tam paredzēts HSTS (HTTP Strict Transport Security, RFC 6797).
Izmantojot HSTS, Jūsu vietne caur https sūta līdzi galveni:
Strict-Transport-Security: max-age=31536000; includeSubDomainsPārlūkprogramma tad atceras: "šo vietni atvērt tikai caur https nākamās 31 536 000 sekundes (vienu gadu)". Ja apmeklētājs vēlāk ieraksta http://example.com, pārlūkprogramma pati to pārveido par https, vēl pirms kaut kas tiek nosūtīts pa tīklu. Vājais pirmais pieprasījums tādējādi atkrīt.
| Sastāvdaļa | Nozīme |
|---|---|
max-age= | Cik ilgi pārlūkprogramma to atceras, sekundēs. Internet.nl uzskata vismaz vienu gadu (max-age=31536000) par pietiekamu; īss periods neaizsargā cilvēkus, kuri Jūsu vietni apmeklē reti. |
includeSubDomains | Attiecas arī uz visiem apakšdomēniem, piemēram, shop.example.com un mail.example.com. |
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. Prasības: cita starpā max-age vismaz vienu gadu, includeSubDomains un visi apakšdomēni https. Izņemšana no saraksta aizņem ilgu laiku. |
max-age=0 | Dzēš atcerēto instrukciju. |
Trīs lietas, kas Jums jāzina, pirms ieslēdzat HSTS:
- Vispirms https jādarbojas visur. Pārlūkprogramma, kas ir atcerējusies HSTS un redz sertifikāta kļūdu, apmeklētājam nedod iespēju turpināt (RFC 6797, 12.1. punkts). Ja Jūsu sertifikāts beidzas vai neatbilst
wwwversijai, Jūsu vietne šiem apmeklētājiem nebūs pieejama, kamēr problēma netiks atrisināta. includeSubDomainsietekmē visu, kas atrodas Jūsu domēnā. Vecs apakšdomēns bez sertifikāta, piemēram, printera vai kameras lapa domēnācamera.example.com, pēc tam vairs nebūs atverams.- Veidojiet to pakāpeniski. Sāciet ar īsu
max-age(piemēram, vienu dienu), pārbaudiet, vai viss darbojas, un soli pa solim palieliniet līdz vienam gadam. Katrā solī nogaidiet visu periodu.
HSTS galveni, kas tiek saņemta pa parastu http, pārlūkprogramma ignorē. Tātad Jūs to redzēsiet tikai https atbildē.
4. slānis: drošības galvenes
Papildus HSTS ir vēl dažas galvenes, kas pārlūkprogrammai pasaka, ko tā drīkst un ko nedrīkst darīt ar Jūsu lapām. Visām nav jābūt ideālām, bet pirmās trīs ir vienkāršas un bez riska.
| Galvene | Pret ko | Laba vērtība |
|---|---|---|
X-Content-Type-Options | Pārlūkprogramma pati minēs, 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 kadrā un liek apmeklētājiem nemanot klikšķināt uz Jūsu pogām. | frame-ancestors 'self' vai 'none'; vecākā galvene X-Frame-Options: SAMEORIGIN vai DENY |
Referrer-Policy | Noklikšķinot uz saites uz citu vietni, pārlūkprogramma līdzi nosūta iepriekšējās lapas adresi. Tur var būt sensitīva informācija, piemēram, meklēšanas vaicājums vai pasūtījuma numurs. | no-referrer vai same-origin (stingrs), strict-origin-when-cross-origin (izplatīts, internet.nl šeit rāda brīdinājumu) |
Content-Security-Policy (pilnā veidā) | Ierobežo, no kurām vietām drīkst ielādēt skriptus, stilus un attēlus. Daudz apgrūtina iestrādātu ļaunprātīgu skriptu (XSS) darbību. | Individuāli pielāgots katrai vietnei. Izvairieties no unsafe-inline, unsafe-eval un aizstājējzīmēm. |
Pilnīga Content-Security-Policy ir visefektīvākā, bet arī visgrūtāk ieviešamā: pārāk stingrs noteikums var salauzt Jūsu statistiku, maksājuma pogu vai tērzēšanas logu. Izmantojot variantu Content-Security-Policy-Report-Only, Jūs vispirms varat izmērīt, kas tiktu bloķēts, nekā nesalaužot. Uzticiet to savam tīmekļa izstrādātājam vai sāciet tikai ar frame-ancestors.
Galveņu pārbaude pašrocīgi
Atveriet savu vietni pārlūkprogrammā, nospiediet F12 (vai izvēlieties "Pārbaudīt"), dodieties uz cilni Tīkls, pārlādējiet lapu un noklikšķiniet uz pirmā pieprasījuma. Sadaļā "Atbildes galvenes" (Response Headers) Jūs redzēsiet visu, ko serveris sūta līdzi. To var izdarīt arī komandrindā:
curl -sI https://example.com/Pati tīmekļa vietne: CMS, spraudņi un tēmas
Vislabākās galvenes nepalīdz, ja programmatūra aiz Jūsu vietnes ir ievainojama. Lielākā daļa uzlauztu mazo uzņēmumu vietņu nav uzlauztas caur tīmekļa serveri, bet gan caur novecojušu spraudni, tēmu, kas gadiem nav atjaunināta, vai vāju administratora paroli.
- Ieslēdziet automātiskos atjauninājumus savam CMS (piemēram, WordPress, Joomla vai citai sistēmai) un spraudņiem, kur tas iespējams.
- Dzēsiet spraudņus un tēmas, ko neizmantojat; vienkārša izslēgšana nav pietiekama, faili tur joprojām ir.
- Administratora pieteikšanās vajadzībām izmantojiet spēcīgu, unikālu paroli un divu faktoru autentifikāciju (2. modulis), un ierobežojiet pieteikšanās mēģinājumu skaitu.
- Uzturiet sava pakotnes PHP versiju (vai citu valodu) tādu, kas vēl saņem atjauninājumus (5.1. nodarbība).
Praksē: šādi tas izskatās
DirectAdmin panelī, ko izmanto WebOké, pie sava domēna vispirms ieslēdziet Beveiligde SSL verbinding, pēc tam Forceer SSL met https omleiding. Tajā pašā vietā ir slēdzis HSTS; to ieslēdziet tikai tad, kad sertifikāts darbojas visiem vārdiem. Citiem pakalpojumu sniedzējiem process ir līdzīgs, vai arī to varat noregulēt sava CMS iestatījumos.
Ja Jūsu vietne darbojas uz Apache vai LiteSpeed, galvenes varat ievietot arī .htaccess failā:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000"
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"
</IfModule>includeSubDomains pievienojiet tikai tad, kad esat pārliecināti, ka katram apakšdomēnam ir https. Pēc katras izmaiņas pārbaudiet to ar internet.nl vietnes testu vai pārlūkprogrammas izstrādātāja rīkiem.
Kopsavilkums
- Slēdzenes ikona nozīmē: šifrēts un pareizs nosaukums. Tā nenozīmē: uzticams.
- Vienmēr novirziet http uz https, vispirms tajā pašā vārdā, un vienā vietā.
- HSTS liek pārlūkprogrammai atcerēties, ka Jūsu vietne darbojas tikai caur https; internet.nl par labu uzskata
max-agevismaz vienu gadu (31536000). Ieslēdziet to tikai tad, kad https darbojas visur, un veidojiet to pakāpeniski. X-Content-Type-Options: nosniff,frame-ancestors(vaiX-Frame-Options) unReferrer-Policyir vienkāršas; pilnīga Content-Security-Policy ir individuāli pielāgojama.- Jūsu CMS, spraudņu un tēmu atjauninājumi ir vismaz tikpat svarīgi kā galvenes.
Tests
Uzdevums
Uzdevums A4.2: Https, HSTS un Jūsu vietnes galveņu pārbaude. Ievadiet sava tīmekļa vietnes domēna vārdu (ja Jums tāda nav, izmantojiet internet.nl). Programma atver Jūsu domēna http:// un https:// versijas un pārbauda sertifikātu, novirzīšanu uz https, HSTS un drošības galvenes. Jūs saņemsiet rezultātu par katru punktu: zaļu, oranžu vai sarkanu, ar paskaidrojumu.
Uzdevums D4.2: Jūsu vietnes atjaunināšana un sakārtošana. Pieslēdzieties savas vietnes pārvaldībai, pārbaudiet sava CMS, spraudņu un tēmu versijas, izdzēsiet to, ko neizmantojat, un ieslēdziet automātiskos atjauninājumus, kur tas iespējams. Atzīmējiet kontrolsarakstu un atbildiet uz pārdomu jautājumu.
Uzdevums D4.2: Jūsu vietnes atjaunināšana un sakārtošana
Šādi rīkojieties: (1) Pieslēdzieties savas vietnes pārvaldībai (vai lūdziet savam vietnes izstrādātājam to darīt kopā ar Jums). (2) Pierakstiet savas CMS versiju un pārbaudiet, vai ir pieejami atjauninājumi. (3) Izveidojiet rezerves kopiju (6.1. nodarbība), instalējiet CMS, spraudņu un tēmu atjauninājumus. (4) Dzēsiet spraudņus un tēmas, ko neizmantojat. (5) Ieslēdziet automātiskos atjauninājumus, kur vien iespējams. (6) Pārbaudiet, kādi administratora konti pastāv, un dzēsiet to cilvēku kontus, kuri vairs nestrādā. (7) Ieslēdziet divu faktoru autentifikāciju katram administratora kontam.
Jūsu atzīmes un piezīmes paliek tikai šajā pārlūkprogrammā; mēs tās nekur nesūtām. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums ir paveikts.
Lasīt tālāk
WebOké rakstos aprakstītie soļi attiecas uz WebOké vidi; citiem pakalpojumu sniedzējiem process ir līdzīgs.
- SSL sertifikāta aktivizēšana, atjaunošana un problēmu novēršana
- Obligāti novirzīt apmeklētājus uz https
- DirectAdmin rokasgrāmata 6.4: Apmeklētājus vienmēr novirzīt uz https
- DirectAdmin rokasgrāmata 6.7: Nav redzama slēdzenīte vai 'nav droša': mixed content novēršana
- DirectAdmin rokasgrāmata 15.10: Web Application Firewall
- WordPress wp-login.php aizsardzība
- Internet.nl, vietnes tests (neatkarīgs): https://internet.nl
- RFC 6797, HTTP Strict Transport Security: https://www.rfc-editor.org/rfc/rfc6797
- HSTS preload saraksts: https://hstspreload.org
- MDN, galveņu skaidrojums (angļu valodā): https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security
