Az azonos webhelyről származó cookie-k fontos biztonsági mechanizmust jelentenek, amelyek segítségével mérsékelni lehet a webalkalmazásokban a Cross-Site Request Forgery (CSRF) támadásokat. A CSRF támadások akkor fordulnak elő, amikor a támadó ráveszi az áldozatot, hogy nem szándékos műveletet hajtson végre egy olyan webhelyen, amelyen az áldozatot hitelesítették. Az áldozat munkamenetének kihasználásával a támadó cselekményeket hajthat végre az áldozat nevében az áldozat beleegyezése nélkül.
Az azonos webhelyen található cookie-k segítenek megelőzni a CSRF-támadásokat azáltal, hogy a cookie-k hatókörét ugyanarra az eredetre korlátozzák. Az eredetet a protokoll (pl. HTTP vagy HTTPS), a tartomány és a portszám kombinációja határozza meg. Ha egy cookie a "SameSite" attribútummal van beállítva, akkor ez meghatározza, hogy a cookie elküldésre kerüljön-e több webhelyre irányuló kérés esetén.
A „SameSite” attribútumnak három lehetséges értéke van:
1. "Szigorú": Ha a "SameSite" attribútum "Strict"-re van állítva, a cookie csak az ugyanarról a webhelyről származó kérésekben kerül elküldésre. Ez azt jelenti, hogy a cookie nem kerül elküldésre a webhelyek közötti kérésekben, hatékonyan megakadályozva a CSRF támadásokat. Például, ha egy felhasználó hitelesítve van az "example.com" webhelyen, és felkeres egy rosszindulatú webhelyet, amely CSRF-támadást próbál végrehajtani, a böngésző nem tartalmazza a "Strict" ugyanazon webhely cookie-ját, így megakadályozza a támadást.
2. „Lax”: Ha a „SameSite” attribútum „Lax” értékre van állítva, a cookie biztonságosnak ítélt, webhelyek közötti kérésekben kerül elküldésre, például amikor a kérést a felhasználó legfelső szintű navigációja váltja ki. A cookie azonban nem kerül elküldésre olyan kérésekben, amelyeket harmadik felek webhelyei kezdeményeznek, például amikor egy kép vagy szkriptcímke betöltődik egy másik domainről. Ez egyensúlyt teremt a biztonság és a használhatóság között. Például egy rosszindulatú webhelyet linken keresztül felkereső felhasználó nem indít CSRF-támadást, mivel a kérés nem tartalmazza a „Lax” ugyanazon webhely cookie-ját.
3. "Nincs": Ha a "SameSite" attribútum "Nincs" értékre van állítva, a cookie minden webhelyek közötti kérelemben elküldésre kerül, függetlenül azok eredetétől. A "Nincs" használatának biztonsága érdekében azonban a cookie-t "Biztonságos"-ként is meg kell jelölni, ami azt jelenti, hogy csak HTTPS-kapcsolaton keresztül kerül elküldésre. Ez a kombináció lehetővé teszi a webalkalmazások számára, hogy támogassák a több telephelyű funkcionalitást, miközben továbbra is védelmet nyújtanak a CSRF-támadásokkal szemben. Megjegyzendő, hogy a "Nincs" értéket csak szükség esetén szabad használni, mivel ez növeli a támadási felületet és a CSRF sebezhetőségeinek lehetőségét.
Az azonos webhelyen található cookie-k CSRF-támadások mérséklésére való használatának szemléltetéséhez vegye figyelembe a következő forgatókönyvet: banki webhely, amely lehetővé teszi a felhasználók számára, hogy pénzt utaljanak át. Az azonos webhely cookie-jai nélkül a támadó olyan rosszindulatú webhelyet hozhat létre, amely rejtett űrlapot tartalmaz, amely automatikusan átutalási kérelmet küld a banki webhelynek, amikor hitelesített felhasználó látogatja meg. Ha a felhasználó böngészője a munkamenet cookie-t tartalmazza a kérésben, az átvitel a felhasználó beleegyezése nélkül történik. Ha azonban a munkamenet-cookie-t a "Strict" attribútummal rendelkező azonos webhely cookie-jaként állítja be, a böngésző nem fogja belefoglalni a cookie-t a több telephelyre kiterjedő kérésben, így hatékonyan megakadályozza a CSRF-támadást.
Az azonos webhelyen található cookie-k értékes biztonsági mechanizmust jelentenek a webalkalmazásokban a CSRF-támadások mérséklésére. Azáltal, hogy a cookie-k hatókörét ugyanarra az eredetre korlátozzák, ezek a cookie-k megakadályozzák, hogy a támadók kihasználják a felhasználói munkamenetet jogosulatlan műveletek végrehajtására. A "Strict" érték biztosítja, hogy a cookie-k csak az ugyanarról a webhelyről származó kérések esetén kerüljenek elküldésre, míg a "Lax" érték lehetővé teszi a cookie-k küldését biztonságos, több webhelyről érkező kérésekben. A "Nincs" érték a "Secure" attribútummal kombinálva lehetővé teszi a helyek közötti funkcionalitást, miközben továbbra is védelmet nyújt a CSRF-támadások ellen.
További friss kérdések és válaszok ezzel kapcsolatban EITC/IS/WASF webalkalmazások biztonsági alapjai:
- A Do Not Track (DNT) webböngészőkben való megvalósítása véd az ujjlenyomat-vétel ellen?
- A HTTP Strict Transport Security (HSTS) segít a protokoll leminősítésével szembeni védelemben?
- Hogyan működik a DNS újrakötési támadás?
- Előfordulnak-e tárolt XSS-támadások, amikor egy rosszindulatú szkriptet tartalmaznak egy webalkalmazásnak küldött kérésben, majd visszaküldik a felhasználónak?
- Az SSL/TLS protokollt használják titkosított kapcsolat létrehozására HTTPS-ben?
- Mik azok a metaadatok lekérési fejlécei, és hogyan lehet velük megkülönböztetni az azonos eredetű és a webhelyek közötti kéréseket?
- Hogyan csökkentik a megbízható típusok a webalkalmazások támadási felületét és egyszerűsítik a biztonsági ellenőrzéseket?
- Mi a célja az alapértelmezett házirendnek a megbízható típusokban, és hogyan használható fel a nem biztonságos karakterlánc-hozzárendelések azonosítására?
- Mi a folyamat a megbízható típusok objektum létrehozásához a megbízható típusok API használatával?
- Hogyan segít a tartalombiztonsági házirendben a megbízható típusok irányelve csökkenteni a DOM-alapú cross-site scripting (XSS) sebezhetőségét?

