Cross-Origin Resource Sharing
CORS styrer browserens adgang til svar fra en anden origin. Det erstatter hverken login til API’et eller kontrol af rettigheder.
Lad en anden origin læse svar
Cross-Origin Resource Sharing, forkortet CORS, er en mekanisme med HTTP-headere. Serveren angiver, fra hvilke andre origins browserkode må få adgang til dens svar. En origin omfatter protokol, vært og port. Browseren håndhæver reglen; CORS er ikke et login til API’et.
Skeln mellem portal og API
En fiktiv portal på https://portal.example vil læse projektdata fra https://api.example/projects. API’et kan tillade portalens origin med Access-Control-Allow-Origin. Afhængigt af metode og headere spørger browseren først med OPTIONS, om selve kaldet er tilladt. Denne forhåndskontrol hedder preflight; den sker ikke ved alle kald.
Ved andre kald kan anmodningen allerede nå serveren, selv om browseren bagefter ikke giver scriptet adgang til svaret. En CORS-fejl beviser derfor ikke, at der ikke er sket noget på serveren.
Skal sessionscookies sendes med, skal indstillingerne for legitimationsoplysninger også passe sammen. Sådanne svar kræver en udtrykkelig origin frem for jokertegnet *; Access-Control-Allow-Credentials er også relevant. Browserens cookieregler gælder stadig. Uafhængigt af dette kontrollerer API’et identitet og rettigheder til de ønskede projektdata.
Kilder
Relaterede begreber
- Same-origin-politik (SOP)Same-origin-politikken begrænser browseradgang mellem forskellige origins. En anden sidesti skaber ikke i sig selv en ny origin.
- Cross-site request forgery (CSRF)CSRF udnytter en indlogget session til en uønsket anmodning. Sessionscookien alene beviser ikke, at personen ønskede handlingen.
- SameSite-cookieSameSite påvirker afsendelse af cookies mellem sites. Valget skal passe til login og navigation; CSRF-beskyttelse er stadig nødvendig.
- Server-Sent EventsServer-Sent Events sender tekstmeddelelser fra server til klient via HTTP, eksempelvis om en baggrundsopgaves fremdrift.
- ETagEt ETag identificerer en bestemt repræsentationsversion af en HTTP-ressource og understøtter betingede opslag eller ændringer.
- Elektronisk dataudvekslingEDI overfører strukturerede forretningsdokumenter mellem systemer. Format, partnerprofil, datafelternes tilknytning og tilbagemeldinger skal passe sammen.
Dit projekt med ASES
Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.