3.1 OpenID, OAuth ja JSON Web Token (JWT)
OpenID
OpenID on autentimisprotokoll, mis suunab kasutaja usaldatud teenusepakkuja juurde (nt Google). Kui kasutaja seal sisse logib, kinnitab teenusepakkuja tema isiku ning veebisait saab usaldusväärse kinnituse ilma eraldi konto loomata.
OAuth
OAuth on autoriseerimise standard, mis annab kolmandatele rakendustele ligipääsu tokeni kujul. Token väljastatakse kasutaja nõusolekul ja seda kasutatakse kaitstud ressursside (nt kontaktid, profiiliandmed) kättesaamiseks.
👉 OAuth väljastab access tokeni.
JWT (JSON Web Token)
JWT on kompaktne viis JSON-objektina infot turvaliselt edasi anda. Koosneb kolmest osast:
- Header (päis) – tokeni tüüp ja allkirjastusalgoritm.
- Payload (andmed) – "claims", väited kasutaja või sessiooni kohta (nt iss, exp, sub, aud).
- Signature (allkiri) – tagab terviklikkuse ja kinnitab, et sisu pole muudetud.
Kontrollvastused:
OAuth puhul väljastatakse: access token.
Apple ID-ga sisselogimiseks kasuta OpenID Connect / OAuth 2.0.
JWT koosneb: header, payload, signature.
3.2 HTTP autentimise päis ja küpsised. Atribuudid: Secure, HttpOnly, SameSite
HTTP autentimine
Lihtsaim variant: brauser lisab päisesse Authorization: Basic <credentials> (kasutajanimi + parool base64-kodeeritult). Kui see puudub, saadab server vastuseks 401 Unauthorized koos WWW-Authenticate päisega.
Küpsised (cookies)
Server saadab brauserile väikese andmepaki, mida brauser salvestab ja lisab edaspidi sama domeeni päringutele. Kasutatakse sessioonide haldamiseks, isikupärastamiseks ning jälgimiseks.
Olulised atribuudid
- Secure – küpsis saadetakse ainult HTTPS-ühenduse kaudu.
- HttpOnly – takistab ligipääsu JavaScripti kaudu (aitab XSS-i vastu).
- SameSite – piirab küpsise saatmist kolmanda osapoole päringutes (väärtused: Strict, Lax, None).
Kontrollvastused:
Küpsiseid kasutatakse: sessioonide haldamiseks, isikupärastamiseks, jälgimiseks.
Secure atribuut takistab küpsise edastamist HTTP kaudu.
SameSite väärtused on: Strict, Lax, None.
3.3 Sessioonid ja tokenite aegumine
Sessioonid
Kuna HTTP on olekuta, seotakse kasutaja päringud sessiooni kaudu. Server hoiab andmeid, brauseril on vaid sessiooni ID.
Aegumine
- Sessioon aegub, kui kasutaja on passiivne, vähendades riski, et keegi kasutab hüljatud sessiooni.
- Access token aegub kiiresti, kuid seda saab uuendada refresh tokeniga ilma, et kasutaja peaks uuesti sisse logima.
Kontrollvastused:
Sessioonid luuakse selleks, et siduda mitu päringut ühe kasutajaga.
Sessiooni aegumine aitab vältida vana sessiooni väärkasutust.
Refresh token võimaldab hankida uue access tokeni ilma uuesti sisselogimata.
3.5 HTTPS ja Let’s Encrypt sertifikaadid
HTTPS / TLS
HTTPS tähendab HTTP kasutamist TLS-i (SSL-i uuemat versiooni) üle. Tagab krüpteeritud ühenduse ja andmete konfidentsiaalsuse. Brauseris näitab lukusümbol turvalist ühendust.
Sertifikaadid
TLS-sertifikaat kinnitab domeeni ja avaliku võtme seose. Kui sertifikaat ei ole usaldusväärsest allikast (CA), kuvab brauser hoiatusi.
Let’s Encrypt
Tasuta sertifitseerimiskeskus, mis väljastab ja uuendab sertifikaate automaatselt (kasutades ACME protokolli). Sertifikaadi saab paigaldada käsurea tööriistaga (nt certbot) või hostingu kaudu.
Kontrollvastused:
HTTPS on protokoll, mis krüpteerib ühenduse TLS-iga.
Usaldusväärne sertifikaat on vajalik selleks, et brauserid usaldaksid ühendust ja ei kuvaks hoiatusi.
3.6 CORS, CSRF, XSS, SQL Injection, Forced browsing
CORS (Cross-Origin Resource Sharing)
Määrab, millised domeenid tohivad API-le ligi pääseda. Vale seadistus (nt '*') võimaldab igal domeenil ligi pääseda.
Kaitsemeetmed:
- Lubada ainult usaldusväärsed päritolud.
- Vältida liiga avaraid poliitikaid.
Muud ründed ja kaitse
- CSRF – kasutaja brauserit sunnitakse tegema soovimatuid päringuid. Kaitse: CSRF token, SameSite küpsised, päise kontroll.
- XSS – pahatahtliku JavaScripti sisestamine lehele. Kaitse: sisendi valideerimine, väljundi puhastamine, CSP, HttpOnly küpsised.
- SQL Injection – pahatahtliku SQL-koodi sisestamine. Kaitse: prepared statements, sisendi valideerimine.
- Forced browsing – URL-ide katsetamine keelatud ressurssidele juurdepääsuks. Kaitse: serveripoolne autoriseerimine.
Kontrollvastused:
CORS on mehhanism, mis võimaldab turvaliselt kasutada ressursse teiselt domeenilt.
CORS-i rünnakuid vältida saab, seadistades poliitika ainult usaldusväärsetele domeenidele.
3.7 Pentestimise tööriistad (WPScan, OWASP ZAP)
Penetratsioonitestimine
Simuleeritud rünnak turvaaukude leidmiseks enne tõelisi ründajaid. Etapid: uurimine, haavatavuste kasutamine, aruandlus ja soovitused.
Tööriistad
- WPScan – WordPressi skanner.
- OWASP ZAP – tasuta veebirakenduste turvatestimise tööriist.
Oluline: Pentest võib koormata süsteemi või põhjustada vigu, seega testi alati eraldi keskkonnas.
Kontrollvastused:
Pentest on vajalik turvanõrkuste avastamiseks enne ründajaid.
Kasutatakse tööriistu nagu WPScan, OWASP ZAP jt.
Pentest võib mõjutada veebisaiti, seega tuleb see hoolikalt planeerida.
sessionStorage
- Brauseri sisseehitatud ajutine andmesalvestus.
- Hoiustab andmeid võtme–väärtuse paaridena.
- Kehtib ainult ühe vahelehe (sessiooni) jooksul.
- Andmed kaovad, kui vaheleht sulgeda.
- Peamised käsud:
setItem, getItem, removeItem, clear.