- CORS (Cross-Origin Resource Sharing)
- Cross-Origin-Ressourcenfreigabe, W3C-Standard, der es Servern ermöglicht zu deklarieren welche Ursprünge über neue HTTP-Header-Felder auf Ressourcen zugreifen können, ist die offizielle Lösung moderner Browser zur Lösung von Cross-Origin-Problemen.
- Same-Origin-Policy (Gleichursprungsrichtlinie)
- Zentraler Sicherheitsmechanismus des Browsers; nur wenn Protokoll, Domäne und Port exakt übereinstimmen gilt es als gleicher Ursprung, und JavaScript unterschiedlichen Ursprungs kann standardmäßig nicht die Ressourcen des anderen lesen.
- Preflight-Anfrage (Preflight Request)
- Anfrage mit Methode OPTIONS die der Browser automatisch zuerst für nicht-einfache Cross-Origin-Anfragen sendet, wird verwendet um den Server zu fragen ob er die nachfolgende echte Anfrage erlaubt; erst nach erfolgreichem Preflight wird die echte Anfrage gesendet.
- Einfache Anfrage (Simple Request)
- Cross-Origin-Anfrage die spezifische Bedingungen erfüllt (Methode GET/HEAD/POST, nur sichere Header, spezifischer Content-Type), die keine Preflight senden muss und direkt die echte Anfrage sendet.
- Access-Control-Allow-Origin (ACAO)
- Wichtigster CORS-Antwort-Header, gibt den erlaubten Ursprung für den Cross-Origin-Zugriff an, kann ein spezifischer Ursprungs-URI oder Wildcard * sein, mit Anmeldeinformationen kann * nicht verwendet werden.
- Access-Control-Allow-Methods (ACAM)
- Preflight-Antwort-Header, listet alle vom Server unterstützten HTTP-Methoden auf, mehrere Methoden durch Komma getrennt.
- Access-Control-Allow-Headers (ACAH)
- Preflight-Antwort-Header, listet alle vom Server erlaubten Anfrage-Header-Felder auf; vom Frontend gesendete benutzerdefinierte Header müssen hier deklariert werden.
- Access-Control-Allow-Credentials (ACAC)
- Antwort-Header, boolescher Wert true gibt an dass das Mitführen von Anmeldeinformationen wie Cookie und Authorization in Cross-Origin-Anfragen erlaubt ist; in diesem Fall darf Allow-Origin nicht * sein.
- Access-Control-Max-Age (ACMA)
- Preflight-Antwort-Header, gibt die Cache-Zeit des Preflight-Ergebnisses in Sekunden an; eine vernünftige Konfiguration kann OPTIONS-Anfragen reduzieren und die Leistung verbessern.
- Vary: Origin
- Antwort-Header, teilt CDN/Proxy mit dass der Antwortinhalt je nach Origin-Anfrage-Header variiert, beim Cachen muss Origin als Cache-Schlüssel einbezogen werden um Cache-Chaos bei Cross-Origin-Antworten zu vermeiden.
- CORS-safelisted Anfrage-Header
- Anfrage-Header die ohne Deklaration in Allow-Headers gesendet werden können, einschließlich Accept, Accept-Language, Content-Language, Content-Type (spezifische Werte) etc.
- Verbotene Headernamen (Forbidden header name)
- Anfrage-Header die der Browser JavaScript verbietet programmatisch zu setzen, wie Host, Connection, Cookie, Origin etc.; diese Header werden automatisch vom Browser gesteuert.
- Anfrage mit Anmeldeinformationen (Credentialed Request)
- Cross-Origin-Anfrage die Identitätsnachweise wie Cookie, HTTP-Authentifizierungsinformationen, TLS-Client-Zertifikate mitführt; erfordert dass Frontend und Backend gemeinsam withCredentials und Allow-Credentials konfigurieren.
- Access-Control-Expose-Headers
- Antwort-Header, listet die Antwort-Header auf auf die JavaScript zugreifen kann; standardmäßig sind nur wenige grundlegende Header zugänglich, benutzerdefinierte Header müssen hier deklariert werden.
- OPTIONS-Methode
- Eine der HTTP-Methoden, wird verwendet um die vom Server unterstützten Kommunikationsoptionen abzurufen; CORS verwendet sie zum Senden von Preflight-Anfragen, fragt den Server nach erlaubten Methoden, Headern, Anmeldeinformationen.
- Origin-Anfrage-Header
- Vom Browser automatisch hinzugefügter Anfrage-Header, gibt an von welchem Ursprung die aktuelle Anfrage kommt (Protokoll+Domäne+Port); der Server bestimmt anhand dieses Headers ob er Cross-Origin erlaubt.
- crossorigin-Attribut
- Attribut von HTML-Elementen (wie script, img, link), wird verwendet um anzugeben ob das Laden von Ressourcen mit CORS aktiviert wird; die Werte sind anonymous (ohne Anmeldeinformationen) und use-credentials (mit Anmeldeinformationen).
- Anfragemodus no-cors
- Ein Modus der fetch-API, der das Senden von Cross-Origin-Anfragen ermöglicht aber nur einfache Anfragen senden kann und JavaScript den Antwortinhalt nicht lesen kann, entspricht dem Senden einer opaken Anfrage (Opaque Response).