Webalkalmazás megerősítése HTTP biztonsági fejlécekkel

A webalkalmazások biztonságossá tétele napjaink digitális világában kritikus fontosságú. Bár sok fejlesztő a kódszintű biztonsági intézkedésekre összpontosít, a HTTP biztonsági fejlécek további, létfontosságú védelmi réteget kínálnak. A HTTP fejlécek utasításokat adnak a böngészőknek a kliens és a szerver közötti kommunikáció kezelésére vonatkozóan, és helyes konfigurálásukkal számos biztonsági rést előzhetünk meg, beleértve a kattintáseltérítést, a weboldalak közötti szkriptelést (XSS) és az adatkiszivárgást.
Ebben a cikkben feltárjuk a legfontosabb kritikus HTTP válaszfejléceket, elmagyarázzuk, hogyan védik meg webalkalmazásait, megvitatjuk, mi történhet, ha nem használják őket, vagy helytelenül konfigurálják őket, és bevált gyakorlatokat mutatunk be konfigurálásukhoz.
Mik azok a HTTP biztonsági fejlécek?
A HTTP biztonsági fejlécek a szervertől a kliensnek küldött HTTP válaszba foglalt irányelvek. Ezek a fejlécek utasításokat adnak az erőforrások kezeléséhez, növelve webalkalmazása biztonságát. Korlátozhatják bizonyos tartalmak felhasználási módját, meghatározhatják a megbízható forrásokat, és kikényszeríthetik a biztonságos kapcsolatokat, többek között.
A megfelelő HTTP biztonsági fejlécek hiányában a webalkalmazás sebezhetővé válik különféle típusú támadásokkal szemben, beleértve a weboldalak közötti szkriptelést (XSS), a kattintáseltérítést és a közbeékelődéses (MITM) támadásokat.
Miért fontosak a HTTP biztonsági fejlécek?
A biztonsági fejlécek segítenek enyhíteni a webalkalmazások elleni általános támadásokat. Számos biztonsági rés abból adódik, ahogyan a böngészők értelmezik és végrehajtják a szkripteket és az adatokat. A megfelelően konfigurált biztonsági fejlécek küldésével irányíthatja a böngészőt, hogy miként kezelje biztonságosan webhelye tartalmát. Ez csökkenti a rosszindulatú szereplők általi kihasználás kockázatát.
Például:
- Kattintáseltérítés: Megfelelő fejlécek nélkül a támadók rábírhatják a felhasználókat, hogy egy rejtett elemre kattintsanak egy iframe-en belül, ami rosszindulatú cselekedetekhez vezethet.
- XSS támadások: Ha a fejlécek nincsenek helyesen beállítva, a böngészők véletlenül végrehajthatnak injektált szkripteket egy nem megbízható forrásból, ami adatlopáshoz, jogosulatlan műveletekhez vagy más rosszindulatú tevékenységekhez vezethet.
- Adatkiszivárgás: A fejlécek megakadályozhatják a bizalmas információk nem kívánt harmadik felekkel való megosztását.
Ezeknek a fejléceknek a helyes konfigurálásával bezárja azokat a támadási vektorokat, amelyeket a hackerek kihasználhatnak.
Alapvető HTTP biztonsági fejlécek
X-Frame-Options
Az X-Frame-Options
fejléc szabályozza, hogy egy böngésző megjeleníthet-e egy weboldalt <frame>
, <iframe>
vagy <object>
elemekben. Ezt a fejlécet elsősorban a kattintáseltérítéses támadások megelőzésére használják.
- Javaslat:
X-Frame-Options: DENY
- Használat: Ha
DENY
értékre van állítva, ez a fejléc megakadályozza, hogy bármely weboldal megjelenjen frame-ben vagy iframe-ben, megakadályozva, hogy a támadók beágyazzák az Ön oldalát saját rosszindulatú webhelyükbe. - Mi történik, ha nem használják: Enélkül a fejléc nélkül webhelye betölthető egy iframe-be, így sebezhetővé válik a kattintáseltérítéses támadásokkal szemben, ahol a felhasználót rászedik, hogy egy rejtett frame-mel lépjen interakcióba, amelyet egy támadó irányít.
X-Content-Type-Options
Ez a fejléc megakadályozza, hogy a böngésző MIME-sniffing-gel eltérjen a deklarált Content-Type
értéktől. Ez különösen hasznos a helytelenül azonosított tartalomtípusokon alapuló támadások megelőzésére.
- Javaslat:
X-Content-Type-Options: nosniff
- Használat: Ha ezt a fejlécet
nosniff
értékre állítja, az biztosítja, hogy a böngésző nem bírálja felül a tartalomtípust, ami biztonsági kockázatokhoz vezethetne. - Mi történik, ha nem használják: Enélkül a fejléc nélkül egy támadó potenciálisan kihasználhatja a MIME-sniffing viselkedést arra, hogy rosszindulatú tartalmat szolgáljon fel legitim médiaként (például egy szöveges fájlt futtathatóvá alakítva).
Referrer-Policy
A Referrer-Policy
fejléc szabályozza, hogy mennyi referrer információt kell belefoglalni a kérésekbe.
- Javaslat:
Referrer-Policy: strict-origin-when-cross-origin
- Használat: Ez a beállítás biztosítja, hogy a teljes URL csak az azonos eredetű kérésekhez kerüljön referrerként elküldésre, míg a kereszt-eredetű kérések csak az URL eredetrészét küldik el. Ez korlátozza a bizalmas információk potenciális kiszivárgását.
- Mi történik, ha nem használják: A helytelenül konfigurált vagy hiányzó
Referrer-Policy
fejlécek a bizalmas adatok nem szándékos felfedését eredményezhetik aReferer
fejlécen keresztül, például olyan elérési utak és lekérdezési karakterláncok, amelyek hitelesítési tokeneket vagy felhasználói adatokat tartalmaznak.
Strict-Transport-Security (HSTS)
A Strict-Transport-Security
fejléc kikényszeríti a HTTPS használatát a webhelyére irányuló összes jövőbeli kéréshez.
- Javaslat:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- Használat: A HTTPS kikényszerítésével a
Strict-Transport-Security
fejléc biztosítja, hogy a böngésző soha ne küldjön nem biztonságos kéréseket az Ön domainjére, még akkor sem, ha a felhasználóhttp://
-t ír be. A preload direktíva lehetővé teszi a böngészők számára, hogy előre betöltsék domainjét HTTPS-alapúként. - Mi történik, ha nem használják: HSTS nélkül a támadók MITM támadásokat hajthatnak végre azáltal, hogy nem biztonságos HTTP kapcsolatokat erőltetnek ki, veszélyeztetve a bizalmas adatokat, például a jelszavakat és a munkamenet tokeneket.
Expect-CT
Az Expect-CT
fejléc lehetővé teszi a tanúsítvány átláthatóságának kikényszerítését és monitorozását. Segít azonosítani és megakadályozni a jogosulatlan vagy csalárd tanúsítványok használatát.
- Javaslat: Nem ajánlott, hacsak webhelyét nem tanúsítvány átláthatósági naplózásra használják.
- Használat: Kikényszerítés esetén a böngészők elutasítják a webhelyekhez való kapcsolatokat, ha a tanúsítvány nincs közzétéve egy nyilvánosan megbízható naplóban.
- Mi történik, ha helytelenül van konfigurálva: Bár védelmet nyújt a jogosulatlan tanúsítványok ellen, problémákat okozhat, ha webhelye nincs megfelelően konfigurálva a tanúsítvány átláthatóságához.
Content-Security-Policy (CSP)
A Content-Security-Policy
fejléc segít enyhíteni az XSS, a kattintáseltérítés és más kódbefecskendezési támadásokat azáltal, hogy meghatározza a tartalom megbízható forrásait.
- Javaslat:
Content-Security-Policy: default-src 'self'
- Használat: A
default-src 'self'
beállítás korlátozza az összes tartalmat (szkripteket, képeket, stíluslapokat stb.), hogy csak ugyanabból az eredetből töltődjenek be. Ezt testre szabhatja, hogy engedélyezze a megbízható külső domaineket. - Mi történik, ha nem használják: CSP nélkül a támadók könnyebben be tudnak injektálni rosszindulatú szkripteket webhelyébe, vagy manipulálhatják az oldal megjelenítését.
Access-Control-Allow-Origin
Ez a fejléc határozza meg, hogy mely eredetek férhetnek hozzá webalkalmazása erőforrásaihoz a CORS-on (Kereszt-Eredetű Erőforrás Megosztás) keresztül.
- Javaslat:
Access-Control-Allow-Origin: https://yoursite.com
- Használat: Ez biztosítja, hogy csak meghatározott, megbízható eredetek férhessenek hozzá erőforrásaihoz.
- Mi történik, ha helytelenül van konfigurálva: Ha ezt a fejlécet
*
értékre állítja, az lehetővé teheti bármely domain számára, hogy hozzáférjen erőforrásaihoz, ami potenciálisan adatlopáshoz és más biztonsági kockázatokhoz vezethet. CORS irányelvek nélkül a kereszt-eredetű kérések teljes egészében blokkolva lehetnek, megzavarva webszolgáltatásait.
Cross-Origin-Opener-Policy (COOP)
A Cross-Origin-Opener-Policy
fejléc biztosítja, hogy webhelye elkülönítse magát más eredetektől. Ez segít megelőzni bizonyos típusú oldalcsatornás támadásokat és adatszivárgást.
- Javaslat:
Cross-Origin-Opener-Policy: same-origin
- Használat: Ha a COOP-t
same-origin
értékre állítja, az biztosítja, hogy a webhelye által megnyitott ablak vagy worker csak ugyanazon eredetű dokumentumokkal lépjen interakcióba. - Mi történik, ha nem használják: COOP nélkül webhelye sebezhető lehet a kereszt-eredetű támadásokkal szemben, amelyek kihasználják a böngésző megosztott erőforrásait, lehetővé téve a támadók számára, hogy adatokat lopjanak vagy manipulálják alkalmazását.
Cross-Origin-Embedder-Policy (COEP)
A Cross-Origin-Embedder-Policy
fejléc biztosítja, hogy egy dokumentum vagy worker csak olyan erőforrásokat töltsön be, amelyek számára kifejezetten engedélyezett a kereszt-eredetűség.
- Javaslat:
Cross-Origin-Embedder-Policy: require-corp
- Használat: Ha a COEP-t
require-corp
értékre állítja, az arra kényszeríti az oldalt, hogy csak akkor töltsön be kereszt-eredetű erőforrásokat, ha azok kifejezetten engedélyezik azt aCross-Origin-Resource-Policy
fejléc beállításával. - Mi történik, ha nem használják: COEP nélkül a kereszt-eredetű erőforrások korlátozás nélkül beágyazhatók, így webhelye sebezhetővé válik a kereszt-eredetű adatszivárgások és a kereszt-eredetű munkamenetek potenciális kihasználása szempontjából.
Cross-Origin-Resource-Policy (CORP)
Ez a fejléc korlátozza, hogy mely eredetek férhetnek hozzá webhelye erőforrásaihoz.
- Javaslat:
Cross-Origin-Resource-Policy: same-site
- Használat: A
same-site
biztosítja, hogy csak ugyanazon webhelyről (azonos eredetű) érkező kérések férhessenek hozzá az erőforrásokhoz. - Mi történik, ha nem használják: Enélkül a fejléc nélkül erőforrásaihoz bármely eredet hozzáférhet, ami potenciálisan adatszivárgáshoz vagy rosszindulatú kereszt-eredetű kéréseken keresztüli kihasználáshoz vezethet.
Permissions-Policy (korábban Feature-Policy)
A Permissions-Policy
fejléc szabályozza a böngészőfunkciókhoz, például a földrajzi helymeghatározáshoz, a kamerához, a mikrofonhoz stb. való hozzáférést.
- Javaslat:
Permissions-Policy: geolocation=(), camera=(), microphone=()
- Használat: Ez a beállítás letiltja bizonyos funkciókhoz, például a földrajzi helymeghatározáshoz, a kamerához és a mikrofonhoz való hozzáférést, hacsak kifejezetten nem engedélyezik.
- Mi történik, ha nem használják: Ha ez a fejléc nincs konfigurálva, webhelye tudtán kívül engedélyezheti az érzékeny hardverfunkciókhoz való hozzáférést, amelyeket rosszindulatú szkriptek kihasználhatnak.
FLoC (Federated Learning of Cohorts - Kohorszok Szövetséges Tanulása)
A FLoC egy új webes nyomon követési technológia, amelyet a Google fejlesztett ki, és a felhasználókat kohorszokba csoportosítja a böngészési viselkedésük alapján. A Permissions-Policy
fejléc használható a FLoC-ból való kilépésre.
- Javaslat:
Permissions-Policy: interest-cohort=()
- Használat: Ez a konfiguráció megakadályozza, hogy webhelye hozzájáruljon a FLoC nyomon követési mechanizmusához, ami megvédheti a felhasználói adatvédelmet.
- Mi történik, ha nem használják: Ha nem lép ki a FLoC-ból, webhelye részt vehet a viselkedésalapú nyomon követésben, ami adatvédelmi aggályokhoz vezethet felhasználói számára.
Server
A Server
fejléc információkat fed fel a használt webszerverről (pl. Apache, Nginx stb.).
- Javaslat: Távolítsa el ezt a fejlécet, vagy állítsa be nem informatív értékre.
- Használat: A
Server
fejléc eltávolításával megakadályozza, hogy a támadók megtudják, hogy melyik szervert használja, csökkentve a célzott támadások valószínűségét. - Mi történik, ha nem távolítják el: Ha ez a fejléc jelen van, a támadók azonosíthatják a webszervert, és potenciálisan kihasználhatják a hozzá kapcsolódó ismert biztonsági réseket.
X-Powered-By
Ez a fejléc információkat közöl a webalkalmazását működtető technológiákról (pl. PHP, ASP.NET).
- Javaslat: Távolítsa el az összes
X-Powered-By
fejlécet. - Használat: Ennek a fejlécnek az eltávolítása elrejti a felesleges információkat a technológiai stack-jéről a potenciális támadók elől.
- Mi történik, ha nem távolítják el: Ha ez a fejléc jelen van, a támadók betekintést nyerhetnek technológiai stack-jébe, és potenciálisan kihasználhatnak bármilyen ismert biztonsági rést.
X-AspNet-Version
Ez a fejléc felfedi a szerver által használt ASP.NET verzióját.
- Javaslat: Tiltsa le ennek a fejlécnek a küldését. Adja hozzá a következő sort a
web.config
fájl<system.web>
szakaszához az eltávolításához:<httpRuntime enableVersionHeader="false" />
. - Használat: Ennek a fejlécnek a letiltása biztosítja, hogy az ASP.NET verzióspecifikus információi ne kerüljenek nyilvánosságra.
- Mi történik, ha nem távolítják el: Az ASP.NET verziójának felfedése lehetővé teheti a támadók számára, hogy az adott verzióban ismert biztonsági réseket célozzanak meg.
X-AspNetMvc-Version
Ez a fejléc felfedi az alkalmazás által használt ASP.NET MVC verzióját.
- Javaslat: Tiltsa le ennek a fejlécnek a küldését. Adja hozzá a következő sort a
Global.asax
fájlhoz az eltávolításához:MvcHandler.DisableMvcResponseHeader = true;
. - Használat: Ennek a fejlécnek a letiltása segít elrejteni technológiai stack-jét a potenciális támadók elől.
- Mi történik, ha nem távolítják el: Az ASP.NET MVC verziójának felfedése segíthet a támadóknak testre szabni támadásaikat az adott verzióban ismert biztonsági rések alapján.
X-DNS-Prefetch-Control
Ez a fejléc szabályozza, hogy engedélyezett-e a DNS előbetöltés, ami segíthet csökkenteni a külső erőforrások késleltetését.
- Javaslat:
X-DNS-Prefetch-Control: off
- Használat: A DNS előbetöltés kikapcsolása biztosítja, hogy alkalmazása ne oldja fel feleslegesen a DNS lekérdezéseket, ami adatvédelmi problémáknak és teljesítménybeli aggályoknak teheti ki.
- Mi történik, ha nem használják: Ha a DNS előbetöltést nem szabályozzák, a böngészők előre feloldhatják a domaineket, ami fokozott adatvédelmi kockázatokhoz és adatszivárgáshoz vezethet.
Public-Key-Pins (HPKP)
A Public-Key-Pins fejlécet MITM támadások megelőzésére tervezték azáltal, hogy biztosítja, hogy a böngészők csak egy meghatározott nyilvános kulcskészletet fogadjanak el a HTTPS kapcsolatokhoz. Azonban a magas implementációs kockázatok miatt elavulttá vált.
- Javaslat: Ne használja ezt a fejlécet. Ehelyett HSTS-en és tanúsítvány átláthatóságon keresztül
kényszerítse ki
a biztonságot.
Összegzés
A webalkalmazások biztonságossá tétele többrétegű megközelítést igényel, és a potenciális biztonsági rések enyhítésének egyik leghatékonyabb módja a HTTP biztonsági fejlécek implementálása. Ezeknek a fejléceknek a hozzáadásával és helyes konfigurálásával megvédheti alkalmazását az olyan gyakori támadásoktól, mint a kattintáseltérítés, az XSS és a kereszt-eredetű biztonsági rések.
Ezen fejlécek nem implementálása vagy helytelen konfigurálása szükségtelen kockázatoknak teheti ki alkalmazását, sebezhetővé téve azt a támadások széles körével szemben. Ezen fejlécek mindegyike egyedi funkcióval rendelkezik a webalkalmazás integritásának védelmében és a felhasználói adatok biztonságának biztosításában. Ahogy a webbiztonság egyre összetettebbé válik, ezek a fejlécek kritikus szerepet játszanak a potenciális fenyegetésekkel szembeni robusztus védelem fenntartásában.
Építse be ezeket a fejléceket webalkalmazása válaszába, rendszeresen ellenőrizze konfigurációjukat, és tartsa lépést a webbiztonság új fejleményeivel, hogy alkalmazása továbbra is biztonságos és felhasználói által megbízható maradjon. Ha segítségre van szüksége a megfelelő HTTP biztonsági fejlécek beállításában és konfigurálásában alkalmazásához, hagyja, hogy a Playful Sparkle segítsen megerősíteni webbiztonságát és hatékonyan megvédeni felhasználói adatait.
Erőforrások
- OWASP project: Secure Headers Project (új ablakban nyílik meg)
- OWASP project: HTTP Security Response Headers Cheat Sheet (új ablakban nyílik meg)
- Mozilla: X-Frame-Options (új ablakban nyílik meg)
- Mozilla: X-XSS-Protection (új ablakban nyílik meg)
- Mozilla: Strict-Transport-Security (új ablakban nyílik meg)
- Mozilla: Content-Type (új ablakban nyílik meg)
- Mozilla: Expect-CT (új ablakban nyílik meg)
- Mozilla: Set-Cookie (új ablakban nyílik meg)
- Mozilla: Cross-Origin-Opener-Policy (új ablakban nyílik meg)
- Mozilla: Cross-Origin-Resource-Policy (új ablakban nyílik meg)
- Mozilla: Cross-Origin-Embedder-Policy (új ablakban nyílik meg)
- Mozilla: Server Header (új ablakban nyílik meg)
- content-security-policy.com (új ablakban nyílik meg)
- hstspreload.org (új ablakban nyílik meg)
- resourcepolicy.fyi (új ablakban nyílik meg)