A CORS hiba az egyik leggyakoribb webhelyfejlesztési probléma, amikor a felhasználók hibás képeket látnak, a videolejátszók nem jelennek meg, vagy a webhely funkciói nem működnek.
Ezek a hibák akkor fordulnak elő, ha a kért tartalmat tároló kiszolgáló a konfigurációja alapján elutasítja a CORS-kérést.
A proxyszerverek, különösen a CORS-proxy-k meg tudják oldani ezt, de néhány figyelmeztetéssel.
Folytassa az olvasást, ha többet szeretne megtudni a CORS-proxyról és a használatukkal kapcsolatos kockázatokról.
🔑 Kulcs elvitelek
- A CORS-proxy-k segítenek a CORS-hibák megoldásában azáltal, hogy közvetítőként működnek az ügyfél böngészője és a tartalmat tároló szerver között.
- A CORS-proxykkal kapcsolatos kockázatok közé tartoznak a biztonsági problémák, a lehetséges cookie-szivárgás és a szerveroldali kérés-hamisítás (SSRF) lehetősége.
- Használjon megbízható fizetős CORS-proxyszolgáltatókat, vagy állítsa be proxykiszolgálóját a biztonsági kockázatok csökkentése érdekében.
- Az engedélyezési eredetkérelmek megvalósítása segíthet megelőzni az SSRF-támadásokat azáltal, hogy a proxyválaszokat a biztonságos listán szereplő célokra korlátozza.
Mi az a CORS?
Mielőtt belemerülne a CORS-proxy-ba, alapvető fontosságú, hogy megértse, mi az a CORS, és hogyan működik.
A CORS vagy a Cross Origin Resource Sharing egy olyan mechanizmus, amely más eredetű kiszolgálón tárolt tartalom kérésére szolgál.
Az egyértelműség kedvéért álljon itt néhány CORS példa.
- An kép egy webhelyen használják, de egy másik webhelyen vagy szerveren tárolják
- JS-szkriptek vagy JSON egy másik szerveren vagy aldomainben tárolva
A CORS-mechanizmust általában rugalmas megoldásként alkalmazzák, mivel a legtöbb webböngésző ugyanazt a származási irányelvet alkalmazza a végfelhasználók biztonsága érdekében.
A Same-Origin házirenddel a webhelyek csak akkor szerezhetnek tartalmat, ha az ugyanabból a tartományból, portszámból és biztonsági protokollból származik. Ez nem mindig van így, így a CORS jön a képbe.
Ha jobban szeretné megérteni, mi az a CORS, nézze meg az alábbi videót:
🎥YouTube-videó: CORS 100 másodpercben (00:00-01:11)
A megtagadott kérésekből eredő hibák kiküszöbölése érdekében a gazdagépnek módosítania kell a CORS-konfigurációját, vagy CORS-proxyt kell használnia.
Mi az a CORS Proxy és Hogyan működik
📖 Definíció A CORS proxy közvetítőként működik a kérelmező kliens vagy böngésző és a kívánt tartalmat tároló szerver között. A CORS-proxykat a CORS-hibák kiküszöbölésére hozzák létre. |
A fenti példa alapján a CORS-proxy a következőképpen fog működni:
- A böngésző elküldi a kérést a CORS proxyszervernek.
- A CORS proxy ezután továbbítja a kérést a következő címre: example2.com.
- A műsorvezetője example2.com elküldi a választ a CORS proxynak.
- A CORS proxy megfelelő fejlécekkel továbbítja a választ a böngészőkliensnek.
- A böngésző jóváhagyja és megjeleníti a tartalmat.
Lehet, hogy egyszerűnek tűnik, de a CORS-proxy használata biztonsági kockázatokat rejt magában. Ezekről a kockázatokról a következő részben lesz szó.
A használat kockázatai CORS proxyk
Íme a CORS-proxy használatával járó kockázatok és azok kezelésének módjai:
1. A CORS proxy-k mindent tudnak
A CORS-proxy bármire képes a rajtuk áthaladó forgalommal.
A forgalom CORS-proxyra küldése azt jelenti, hogy teljes mértékben megbízik a proxyban. Szinte kivétel nélkül minden adatot beolvas, amelyen áthalad.
Az ingyenes proxyk veszélyesek, nemhogy az ingyenes CORS-proxy.
Például, ha webhelye úgy van beállítva, hogy más forrásból származó JavaScript-tartalmat kapjon, akkor a CORS-proxy számára is engedélyezheti bármely JS-szkript futtatását.
Félelmetes lehet, ha hagyja, hogy mások átvegyék az irányítást webhelye funkciói felett. Jobb, ha saját proxyszervert hoz létre a CORS számára, vagy jobb, ha megbízható fizetős szolgáltatóra támaszkodik.
✅ Pro-tipp: Mindig alaposan ellenőrizze, mielőtt proxyszolgáltatót választana, még akkor is, ha fizetős szolgáltatót szeretne használni. Ez nagyobb biztonságot biztosít és minimalizálja a kapcsolódó kockázatokat. |
2. A cookie-k nem kívánt célhelyre szivároghatnak
A kért szerverek válaszai cookie-kat tartalmazhatnak. Előfordulhat, hogy a böngészők nem tudják megkülönböztetni tervezett felhasználásukat, mivel csak a CORS proxyszerverrel lépnek kapcsolatba.
mondjuk example.com innen kell tartalmat beszerezni example2.com.
A böngésző kérést küld a CORS proxyszervernek, és a válasz egy „set-cookie” fejlécet jelez. A süti célja example2.com el van mentve a böngészőben.
Egy másik webhelyrészen example.com innen kell tartalmat beszerezni example3.com.
A böngésző kérelmet küld a CORS proxynak, de tartalmazza az erre szánt sütiket example2.com. Csak a CORS proxyval működik együtt, így nem ismeri a különbséget.
Minden azon múlik, hogy mennyire bízik meg a proxyszerverben és a szükséges tartalmat tároló szerverekben.
Ha Ön irányítja a CORS proxyszervert, jobb lehet a cookie-fejlécek teljes eltávolítása. Ugyanez igaz a hitelesítő adatok átadásának engedélyezésére is.
✅ Pro-tipp: Annak elkerülése érdekében, hogy a cookie-k nem kívánt célhelyekre kerüljenek, fontolja meg a cookie-fejlécek eltávolítását, és értékelje a proxy- és tartalomszolgáltató szerverek megbízhatóságát. |
3. Szerveroldali kérelem-hamisítás
Ha úgy dönt, hogy belső CORS-proxyt használ, fennáll annak a veszélye, hogy belső hálózata külső felhasználóknak lesz kitéve.
Ezt a támadást más néven szerveroldali kéréshamisítás (SSRF). Ezt úgy teheti meg, hogy kérést küld a proxyn keresztül a belső erőforrásokhoz való hozzáférésre.
A felhasználó beállíthatja a célhelyet a 127.0.0.1-re vagy a localhost-ra, hogy utasítsa a proxyt, hogy nézzen vissza a hálózatára.
Ez a támadás hozzáférést szerezhet a rendszergazdai felülethez, vagy bizalmas információkat szerezhet.
✅ Pro-tip: Az eredetkérelmek engedélyezési listája segíthet ennek elkerülésében. A csak megbízható forrásokból származó kérések engedélyezésével csökkentheti az érzékeny belső erőforrásokhoz való jogosulatlan hozzáférés kockázatát. |
A legjobb CORS proxy Használhatod
Bár a CORS-proxy használata kockázatokkal jár, vannak módok ezek csökkentésére is.
Mindaddig, amíg óvatosan használják őket, a CORS-proxyk hosszú távú megoldást jelenthetnek a CORS-hibákra.
Ezt szem előtt tartva az alábbiakban felsoroljuk azokat a CORS-proxykat, amelyeket használhat:
1. Cloudflare
Ár: Ingyenes csomag – napi 100 000 kérés 5 USD/hó – 10 millió kérés havonta |
Főbb jellemzők: Tartalom gyorsítótárazása CDN előnyei Ingyenes terv |
A Cloudflare a világ egyik vezető CDN-je. Ami népszerűvé teszi, az az ingyenes, időkorlát nélküli terv.
CORS-proxyja a Cloudflare Workers-en keresztül működik. Egyik figyelemre méltó funkciója a tartalom gyorsítótárazása. A proxy készen áll a kézbesítésre ugyanazon fejléc későbbi kérésére.
Ne feledje, hogy fizetnie kell a funkciók bővítéséért és a kérések számának növeléséért.
Azonban garantáltan megéri a pénzt – tekintve, hogy a CloudFlare egy megbízható márka, amely több mint 27 millió webhelyet támogat világszerte.
2. CORS Bárhol
Ár: INGYENES |
Főbb jellemzők: Nyílt forráskódú Helyi proxy létrehozása |
CORS Bárhol egy vírusos nyílt forráskódú modul a Node.js számára.
Lehetővé teszi a CORS proxykiszolgáló helyi futtatását. Ez megkerüli a böngésző által előírt CORS-korlátozást, mivel a CORS a böngésző szabályzata.
Ez az eszköz átirányítja a kérést a helyi proxyhoz. A proxy lekéri az adatokat a célforrástól, majd megfelelő fejlécekkel továbbítja a böngészőnek.
A CORS Anywhere egy ingyenes eszköz, amely vonzó a fejlesztők és a webhelytulajdonosok számára. A hátránya, hogy mindig futnia kell a Node.js fájlnak, hogy működjön.
3. CORS.SH
Ár: 4 USD/hó – 500 000 kérés havonta |
Főbb jellemzők: 500 GB sávszélesség Korlátlan számú projekt Nincs órakorlát Maximum 6 MB kérésenként |
Egy másik fizetős CORS proxy szolgáltatás CORS.SH. Az itt található kód a CORS Anywhere-n alapul, de hozzáadott játszótérrel.
Az alapterv havonta akár 500 000 kérelmet is támogathat órakorlát nélkül.
A CORS.SH megóvja Önt a Node.js állandó futtatásától, hogy a proxy működjön.
Azonban ne feledje a CORS-proxy alapvető óvintézkedéseit, ha valaki más CORS-proxyját használja.
Következtetés
A CORS-proxyknak komoly biztonsági problémái vannak, de a szükséges óvintézkedések megtétele megbízható megoldást jelenthet a CORS-hibák kiküszöbölésére.
Egyes CORS-proxy csak teszthasználatra és nem gyártásra korlátozódik. Tartsa szemmel a használati esetekre vonatkozó ajánlásokat minden megtalálható CORS-proxyn.
GYIK
-
Mi történik, ha engedélyezi a CORS-t?
Ez azt jelenti, hogy engedélyezi a HTTP-kérések számára, hogy tartalmat forrásoljanak a szerveréről. A kéréseket küldő domaineket engedélyezőlistára helyezheti, így nem lehet probléma.
-
Milyen problémákat akadályoz meg a CORS?
A CORS megakadályozza az önkényes és korlátlan kéréseket bármely webhely vagy szerver erőforrásaihoz. Figyelembe veszi a rosszindulatú szkriptektől származó kérések létezését, amelyek célja érzékeny adatok ellopása.
-
Milyen hatással van a CORS sebezhetősége?
Ha a CORS rosszul van konfigurálva, a szerverek szinte bármilyen kérésre válaszolhatnak, és érzékeny adatok szivároghatnak ki.