Eesti

Põhjalik juhend veebi turvapäiste rakendamiseks, et kaitsta oma veebisaiti levinud rünnakute eest ja parandada turvalisust ülemaailmsele publikule.

Veebi turvapäised: praktiline rakendamise juhend

Tänapäeva digitaalsel maastikul on veebiturvalisus esmatähtis. Veebisaidid on pidevalt erinevate rünnakute sihtmärgiks, sealhulgas saidiülene skriptimine (XSS), klikikaaperdamine ja andmesisestusrünnakud. Veebi turvapäiste rakendamine on oluline samm nende riskide leevendamisel ning teie kasutajate ja andmete kaitsmisel. See juhend annab põhjaliku ülevaate peamistest turvapäistest ja nende tõhusast rakendamisest.

Mis on veebi turvapäised?

Veebi turvapäised on HTTP vastusepäised, mis annavad veebilehitsejatele juhiseid, kuidas teie veebisaidi sisu käsitleda. Need toimivad reeglite kogumina, mis ütlevad brauserile, millised toimingud on lubatud ja millised keelatud. Nende päiste õige seadistamisega saate oluliselt vähendada oma veebisaidi rünnakupinda ja parandada selle üldist turvalisuse taset. Turvapäised täiustavad olemasolevaid turvameetmeid ja pakuvad täiendavat kaitsekihti levinud veebiturvanõrkuste vastu.

Miks on turvapäised olulised?

Olulisemad turvapäised ja nende rakendamine

Siin on ülevaade kõige olulisematest turvapäistest ja nende rakendamisest:

1. Content-Security-Policy (CSP)

Content-Security-Policy (CSP) päis on üks võimsamaid turvapäiseid. See võimaldab teil kontrollida allikaid, kust brauseril on lubatud laadida ressursse, nagu skriptid, stiililehed, pildid ja fondid. See aitab vältida XSS-rünnakuid, takistades brauseril teie veebisaidile süstitud pahatahtliku koodi käivitamist.

Rakendamine:

CSP päis seadistatakse `Content-Security-Policy` direktiiviga. Väärtus on direktiivide loend, millest igaüks määrab lubatud allikad konkreetse ressursitüübi jaoks.

Näide:

Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com; style-src 'self' https://example.com; img-src 'self' data:; font-src 'self'; connect-src 'self' wss://example.com;

Selgitus:

Olulised CSP direktiivid:

CSP ainult raporteerimise režiim:

Enne CSP poliitika jõustamist on soovitatav kasutada ainult raporteerimise režiimi. See võimaldab teil jälgida poliitika mõju ilma ühtegi ressurssi blokeerimata. Selleks kasutatakse `Content-Security-Policy-Report-Only` päist.

Näide:

Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' https://example.com; report-uri /csp-report-endpoint;

Selles näites raporteeritakse kõik CSP poliitika rikkumised `/csp-report-endpoint` URL-ile. Nende aruannete vastuvõtmiseks ja analüüsimiseks peate seadistama serveripoolse lõpp-punkti. Tööriistad nagu Sentry ja Google CSP Evaluator aitavad CSP poliitika loomisel ja aruandlusel.

2. X-Frame-Options

X-Frame-Options päist kasutatakse klikikaaperdamise rünnakute eest kaitsmiseks. Klikikaaperdamine toimub siis, kui ründaja meelitab kasutaja klikkima millelegi muule, kui ta tajub, sageli paigutades legitiimse veebisaidi pahatahtliku iframe'i sisse.

Rakendamine:

X-Frame-Options päisel võib olla kolm võimalikku väärtust:

Näited:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN

Enamiku veebisaitide jaoks on `SAMEORIGIN` valik kõige sobivam. Kui teie veebisaiti ei tohiks kunagi raamida, kasutage `DENY`. `ALLOW-FROM` valikut ei soovitata brauseri ühilduvusprobleemide tõttu üldiselt kasutada.

Tähtis: Kaaluge CSP `frame-ancestors` direktiivi kasutamist `X-Frame-Options` asemel parema kontrolli ja ühilduvuse tagamiseks, kuna `X-Frame-Options` loetakse pärandiks. `frame-ancestors` võimaldab teil määrata nimekirja päritoludest, millel on lubatud ressurssi manustada.

3. Strict-Transport-Security (HSTS)

Strict-Transport-Security (HSTS) päis sunnib brausereid teie veebisaidiga suhtlema ainult HTTPS-i kaudu. See hoiab ära vahendusrünnakud, kus ründaja võiks pealt kuulata ebaturvalist HTTP-liiklust ja suunata kasutajad pahatahtlikule veebisaidile.

Rakendamine:

HSTS päis määrab `max-age` direktiivi, mis näitab sekundite arvu, mille jooksul brauser peaks meeles pidama saidile juurdepääsu ainult HTTPS-i kaudu. Saate lisada ka `includeSubDomains` direktiivi, et rakendada HSTS poliitikat kõigile alamdomeenidele.

Näide:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Selgitus:

Tähtis: Enne HSTS-i lubamist veenduge, et kogu teie veebisait ja kõik selle alamdomeenid on HTTPS-i kaudu kättesaadavad. Selle eiramine võib põhjustada kasutajate suutmatust teie veebisaidile juurde pääseda.

4. X-Content-Type-Options

X-Content-Type-Options päis hoiab ära MIME-nuuskimisrünnakud. MIME-nuuskimine on tehnika, kus brauser proovib ära arvata ressursi sisutüüpi, isegi kui server on määranud teise sisutüübi. See võib põhjustada turvanõrkusi, kui brauser tõlgendab faili ekslikult käivitatavaks koodiks.

Rakendamine:

X-Content-Type-Options päisel on ainult üks võimalik väärtus: `nosniff`.

Näide:

X-Content-Type-Options: nosniff

See päis ütleb brauserile, et ta ei prooviks ressursi sisutüüpi ära arvata ja tugineks ainult serveri määratud `Content-Type` päisele.

5. Referrer-Policy

Referrer-Policy päis kontrollib, kui palju viitaja teavet (eelmise lehe URL) saadetakse teistele veebisaitidele, kui kasutaja teie veebisaidilt lahkub. See aitab kaitsta kasutajate privaatsust, vältides tundliku teabe lekkimist kolmandate osapoolte saitidele.

Rakendamine:

Referrer-Policy päisel võib olla mitu võimalikku väärtust, millest igaüks määrab erineva taseme viitaja teabe saatmiseks:

Näited:

Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: no-referrer

`strict-origin-when-cross-origin` poliitika on sageli hea tasakaal turvalisuse ja funktsionaalsuse vahel. See kaitseb kasutaja privaatsust, saates mitte täielikku URL-i erinevatele päritoludele, kuid võimaldades samal ajal veebisaitidel jälgida põhilist viitamisteavet.

6. Permissions-Policy (varem Feature-Policy)

Permissions-Policy päis (varem tuntud kui Feature-Policy) võimaldab teil kontrollida, milliseid brauseri funktsioone (nt kaamera, mikrofon, geolokatsioon) on teie veebisaidil ja manustatud iframe'ides lubatud kasutada. See aitab vältida pahatahtliku koodi juurdepääsu tundlikele brauseri funktsioonidele ilma kasutaja selgesõnalise nõusolekuta.

Rakendamine:

Permissions-Policy päis määrab direktiivide loendi, millest igaüks kontrollib juurdepääsu konkreetsele brauseri funktsioonile. Iga direktiiv koosneb funktsiooni nimest ja lubatud päritolude loendist.

Näide:

Permissions-Policy: geolocation 'self' https://example.com; camera 'none'; microphone (self)

Selgitus:

Levinud Permissions-Policy funktsioonid:

7. Muud turvapäised

Kuigi eespool käsitletud päised on kõige sagedamini kasutatavad ja olulisemad, võivad teised turvapäised pakkuda täiendavat kaitset:

Turvapäiste rakendamine

Turvapäiseid saab rakendada mitmel viisil, sõltuvalt teie veebiserverist või sisuedastusvõrgust (CDN).

1. Veebiserveri konfiguratsioon

Saate konfigureerida oma veebiserveri (nt Apache, Nginx) lisama turvapäiseid HTTP vastusesse. See on sageli kõige otsesem ja tõhusam viis turvapäiste rakendamiseks.

Apache:

Saate kasutada `Header` direktiivi oma Apache konfiguratsioonifailis (`.htaccess` või `httpd.conf`) turvapäiste seadistamiseks.

Näide:

Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://example.com;"
Header set X-Frame-Options "SAMEORIGIN"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "geolocation 'self'"

Nginx:

Saate kasutada `add_header` direktiivi oma Nginx konfiguratsioonifailis (`nginx.conf`) turvapäiste seadistamiseks.

Näide:

add_header Content-Security-Policy "default_src 'self'; script-src 'self' https://example.com;";
add_header X-Frame-Options "SAMEORIGIN";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Permissions-Policy "geolocation 'self';";

2. Sisuedastusvõrk (CDN)

Paljud CDN-id, nagu Cloudflare, Akamai ja Fastly, pakuvad funktsioone turvapäiste konfigureerimiseks. See võib olla mugav viis turvapäiste rakendamiseks, eriti kui te juba kasutate CDN-i.

Näide (Cloudflare):

Cloudflare'is saate turvapäiseid konfigureerida, kasutades funktsioone "Rules" või "Transform Rules". Saate määratleda reegleid HTTP päiste lisamiseks, muutmiseks või eemaldamiseks mitmesuguste kriteeriumide alusel, nagu URL või päringu tüüp.

3. Serveripoolne kood

Saate seadistada turvapäiseid ka oma serveripoolses koodis (nt kasutades PHP-d, Pythonit, Node.js-i). See lähenemine annab teile rohkem paindlikkust päiste dünaamiliseks seadistamiseks vastavalt päringule või kasutaja kontekstile.

Näide (Node.js koos Expressiga):

const express = require('express');
const app = express();

app.use((req, res, next) => {
  res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self' https://example.com;");
  res.setHeader('X-Frame-Options', 'SAMEORIGIN');
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload');
  res.setHeader('X-Content-Type-Options', 'nosniff');
  res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
  res.setHeader('Permissions-Policy', "geolocation 'self'");
  next();
});

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Testimine ja valideerimine

Pärast turvapäiste rakendamist on ülioluline testida ja valideerida, et need töötavad õigesti. Selleks on abiks mitmed veebipõhised tööriistad:

Näide Chrome DevTools'i abil:

  1. Avage Chrome DevTools (paremklõps lehel ja valige "Uuri").
  2. Minge vahekaardile "Network" (Võrk).
  3. Laadige leht uuesti.
  4. Valige põhidokumendi päring (tavaliselt esimene päring loendis).
  5. Minge vahekaardile "Headers" (Päised).
  6. Kerige alla jaotiseni "Response Headers" (Vastusepäised), et näha turvapäiseid.

Levinud vead ja parimad praktikad

Siin on mõned levinud vead, mida vältida turvapäiste rakendamisel:

Parimad praktikad:

Kokkuvõte

Veebi turvapäiste rakendamine on oluline samm teie veebisaidi ja kasutajate kaitsmisel levinud rünnakute eest. Mõistes iga päise eesmärki ja järgides selles juhendis kirjeldatud parimaid tavasid, saate oluliselt parandada oma veebisaidi turvalisuse taset ja luua usaldust oma kasutajatega. Ärge unustage oma turvapäiseid regulaarselt testida ja jälgida, et tagada nende tõhus toimimine ja kohaneda arenevate turvaohtudega. Turvapäiste rakendamiseks kulutatud aeg ja vaev tasuvad end pikas perspektiivis ära, kaitstes teie veebisaiti ja kasutajaid kahju eest. Lõpetuseks kaaluge turvaeksperdiga konsulteerimist või turvaauditi teenuse kasutamist, et hinnata oma veebisaidi turvalisust ja tuvastada kõik haavatavused.