Tos pačios svetainės slapukai yra svarbus saugos mechanizmas, kurį galima naudoti siekiant sumažinti kelių svetainių užklausų klastojimo (CSRF) atakas žiniatinklio programose. CSRF atakos įvyksta, kai užpuolikas apgaudinėja auką atlikti nenumatytą veiksmą svetainėje, kurioje auka patvirtinama. Išnaudodamas aukos seansą, užpuolikas gali atlikti veiksmus aukos vardu be jo sutikimo.
Tos pačios svetainės slapukai padeda išvengti CSRF atakų, apribodami slapukų apimtį iki tos pačios kilmės. Kilmė apibrėžiama protokolo (pvz., HTTP arba HTTPS), domeno ir prievado numerio deriniu. Kai slapukas nustatomas naudojant atributą „SameSite“, jis nurodo, ar slapukas turi būti siunčiamas kelių svetainių užklausose.
Yra trys galimos atributo „SameSite“ reikšmės:
1. „Griežtas“: kai atributas „SameSite“ nustatytas į „Griežtas“, slapukas siunčiamas tik iš tos pačios svetainės gaunamose užklausose. Tai reiškia, kad slapukas nebus siunčiamas kelių svetainių užklausose, veiksmingai užkertant kelią CSRF atakoms. Pavyzdžiui, jei vartotojas yra autentifikuotas „example.com“ ir apsilanko kenkėjiškoje svetainėje, kuri bando įvykdyti CSRF ataką, naršyklė į užklausą neįtrauks „Griežto“ tos pačios svetainės slapuko, taip užkertant kelią atakai.
2. „Lax“: kai atributas „SameSite“ nustatytas į „Lax“, slapukas siunčiamas kelių svetainių užklausose, kurios laikomos saugiomis, pvz., kai užklausą suaktyvina naudotojo aukščiausio lygio naršymas. Tačiau slapukas nesiunčiamas trečiųjų šalių svetainių inicijuotose užklausose, pvz., kai vaizdas arba scenarijaus žyma įkeliama iš kito domeno. Tai užtikrina pusiausvyrą tarp saugumo ir naudojimo patogumo. Pavyzdžiui, vartotojas, apsilankęs kenkėjiškoje svetainėje per nuorodą, nesukels CSRF atakos, nes „Lax“ tos pačios svetainės slapukas nebus įtrauktas į užklausą.
3. „Nėra“: kai atributas „SameSite“ nustatytas į „Nėra“, slapukas siunčiamas visose kelių svetainių užklausose, neatsižvelgiant į jų kilmę. Tačiau norint užtikrinti „Nėra“ naudojimo saugumą, slapukas taip pat turi būti pažymėtas kaip „Saugus“, o tai reiškia, kad jis bus siunčiamas tik HTTPS ryšiu. Šis derinys leidžia žiniatinklio programoms palaikyti kelių svetainių funkcijas, kartu apsaugant nuo CSRF atakų. Reikėtų pažymėti, kad reikšmė „Nėra“ turėtų būti naudojama tik tada, kai būtina, nes ji padidina atakos paviršių ir padidina CSRF pažeidžiamumų potencialą.
Norėdami iliustruoti tos pačios svetainės slapukų naudojimą mažinant CSRF atakas, apsvarstykite tokį scenarijų: banko svetainė, leidžianti vartotojams pervesti lėšas. Be tos pačios svetainės slapukų užpuolikas gali sukurti kenkėjišką svetainę, kurioje yra paslėpta forma, kuri automatiškai pateikia lėšų pervedimo užklausą banko svetainei, kai ją aplanko autentifikuotas vartotojas. Jei vartotojo naršyklė į užklausą įtrauks seanso slapuką, perkėlimas bus vykdomas be vartotojo sutikimo. Tačiau nustatydama seanso slapuką kaip tos pačios svetainės slapuką su atributu „Griežtas“, naršyklė neįtrauks slapuko į kelių svetainių užklausą, taip veiksmingai užkertant kelią CSRF atakai.
Tos pačios svetainės slapukai yra vertingas saugos mechanizmas, skirtas sumažinti CSRF atakas žiniatinklio programose. Apribodami slapukų apimtį iki tos pačios kilmės, šie slapukai užkerta kelią užpuolikams išnaudoti vartotojo seansą neleistiniems veiksmams atlikti. Vertė „Griežtas“ užtikrina, kad slapukai būtų siunčiami tik iš tos pačios svetainės gaunamose užklausose, o „Lax“ vertė leidžia siųsti slapukus saugiose kelių svetainių užklausose. Vertė „Nėra“ kartu su atributu „Secure“ įgalina kelių svetainių funkcionalumą, kartu apsaugant nuo CSRF atakų.
Kiti naujausi klausimai ir atsakymai apie EITC/IS/WASF žiniatinklio programų saugos pagrindai:
- Ar interneto naršyklėse įdiegta funkcija Do Not Track (DNT) apsaugo nuo pirštų atspaudų?
- Ar HTTP griežta transporto sauga (HSTS) padeda apsisaugoti nuo protokolo pažeminimo atakų?
- Kaip veikia DNS perrišimo ataka?
- Ar saugomos XSS atakos įvyksta, kai kenkėjiškas scenarijus įtraukiamas į žiniatinklio programos užklausą ir siunčiamas atgal vartotojui?
- Ar SSL/TLS protokolas naudojamas šifruotam ryšiui HTTPS užmegzti?
- Kas yra gauti metaduomenų užklausų antraštės ir kaip jas galima naudoti norint atskirti tos pačios kilmės ir kelių svetainių užklausas?
- Kaip patikimi tipai sumažina žiniatinklio programų atakų paviršių ir supaprastina saugos peržiūras?
- Koks yra numatytosios patikimų tipų politikos tikslas ir kaip ją naudoti norint nustatyti nesaugius eilučių priskyrimus?
- Koks yra patikimų tipų objekto kūrimo procesas naudojant patikimų tipų API?
- Kaip patikimų tipų direktyva turinio saugos politikoje padeda sumažinti DOM pagrįstą kryžminio scenarijaus (XSS) pažeidžiamumą?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/IS/WASF žiniatinklio programų saugos pagrinduose

