Cross-Origin Resource Sharing
CORS regelt browsertoegang tot antwoorden van een andere origin. Het vervangt geen API-aanmelding of controle van toegangsrechten.
Een andere origin antwoorden laten lezen
Cross-Origin Resource Sharing, of CORS, is een mechanisme met HTTP-headers. De server geeft aan vanaf welke andere origins browsercode zijn antwoorden mag benaderen. Een origin omvat protocol, host en poort. De browser handhaaft de regel; CORS is geen API-aanmelding.
Portaal en API onderscheiden
Een fictief portaal op https://portal.example wil projectgegevens lezen van https://api.example/projects. De API kan de portaal-origin toestaan met Access-Control-Allow-Origin. Afhankelijk van methode en headers vraagt de browser eerst met OPTIONS of de eigenlijke aanroep is toegestaan. Deze voorafgaande controle heet preflight en vindt niet bij iedere aanroep plaats.
Bij andere aanroepen kan het verzoek de server al bereiken, terwijl de browser het antwoord vervolgens niet aan het script vrijgeeft. Een CORS-fout bewijst dus niet dat op de server niets is gebeurd.
Moeten sessiecookies worden meegestuurd, dan moeten ook de instellingen voor toegangsgegevens overeenkomen. Zulke antwoorden vereisen een expliciete origin in plaats van het jokerteken *; ook Access-Control-Allow-Credentials is van belang. De cookieregels van de browser blijven gelden. Los daarvan controleert de API identiteit en rechten voor de gevraagde projectgegevens.
Bronnen
Verwante begrippen
- Same-origin policy (SOP)De same-origin policy beperkt browsertoegang tussen verschillende origins. Alleen een ander paginapad levert nog geen nieuwe origin op.
- Cross-site request forgery (CSRF)CSRF misbruikt een aangemelde sessie voor een ongewenst verzoek. De sessiecookie alleen bewijst niet dat de gebruiker de handeling bedoelde.
- SameSite-cookieSameSite beïnvloedt meesturen van cookies bij verzoeken tussen sites. De keuze moet passen bij aanmelden en navigatie; CSRF-bescherming blijft nodig.
- Server-Sent EventsServer-Sent Events verstuurt tekstmeldingen van server naar client via HTTP, bijvoorbeeld over de voortgang van een achtergrondtaak.
- ETagEen ETag identificeert een bepaalde representatieversie van een HTTP-resource en ondersteunt voorwaardelijk lezen of wijzigen.
- Electronic Data InterchangeEDI verstuurt gestructureerde bedrijfsdocumenten tussen systemen. Formaat, partnerprofiel, gegevensmapping en terugmeldingen moeten op elkaar aansluiten.
Uw project met ASES
Beschrijf ons uw project. We nemen contact met u op met een eerste inschatting.