„Cross-Origin Resource Sharing“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Die letzte Textänderung von 46.115.109.12 wurde verworfen und die Version 116983561 von KLBot2 wiederhergestellt. deutscher Genitiv |
||
Zeile 1: | Zeile 1: | ||
'''Cross-Origin Resource Sharing''' ('''CORS''') ist ein Mechanismus um [[Webbrowser]]n oder auch anderen Webclients [[Cross-Origin-Request]]s zu ermöglichen.<ref>[http://www.w3.org/TR/cors/ W3C |
'''Cross-Origin Resource Sharing''' ('''CORS''') ist ein Mechanismus um [[Webbrowser]]n oder auch anderen Webclients [[Cross-Origin-Request]]s zu ermöglichen.<ref>[http://www.w3.org/TR/cors/ W3C Arbeits Entwurf] (englisch)</ref> Zugriffe dieser Art sind normalerweise durch die [[Same-Origin-Policy]] (SOP) untersagt. CORS ist ein Kompromiss zugunsten größerer Flexibilität im Internet unter Berücksichtigung möglichst hoher Sicherheitsmaßnahmen. |
||
== Funktionsweise == |
== Funktionsweise == |
Version vom 25. Mai 2013, 09:20 Uhr
Cross-Origin Resource Sharing (CORS) ist ein Mechanismus um Webbrowsern oder auch anderen Webclients Cross-Origin-Requests zu ermöglichen.[1] Zugriffe dieser Art sind normalerweise durch die Same-Origin-Policy (SOP) untersagt. CORS ist ein Kompromiss zugunsten größerer Flexibilität im Internet unter Berücksichtigung möglichst hoher Sicherheitsmaßnahmen.
Funktionsweise
Die Einschränkungen, die durch die SOP auferlegt sind, können vom jeweiligen Server, der angefragt wird, für bestimmte Clients aufgehoben werden.
Damit die Anfrage einer Webseite, z.B. http://foo.example
, an einen Server einer abweichenden Domain, z.B. http://bar.example
, erfolgreich durchgeführt werden kann, muss der Server bei seiner Antwort den Zugriff durch entsprechende HTTP-Header erlauben.
Sendet der Server den nachfolgenden Header, so erlaubt er Anfragen von Seiten des dort genannten Servers und ein Cross-Origin-Request ist erfolgreich. Zugriffe von anderen Servern werden aufgrund der SOP weiterhin nicht erfolgreich durchgeführt.
HTTP-Header des Servers (Beispiel):
Access-Control-Allow-Origin: http://foo.example
Weitere Access-Control-*
-Header können das Zugriffsverhalten zusätzlich einschränken und die Sicherheit somit erhöhen, um den Server vor unberechtigten Anfragen zu schützen.
Browser-Unterstützung
CORS wird von folgenden Rendering-Engines unterstützt:
- Gecko 1.9.1+ (Mozilla Firefox 3.5+,[2] SeaMonkey 2.0+[3]).
- WebKit (Safari 4+,[4] Google Chrome 3+[5])
- MSHTML/Trident 4.0+ (Internet Explorer 8 bietet teilweise Unterstützung durch das XDomainRequest Objekt.[4] Der Internet Explorer 10 wird CORS dann durch XMLHttpRequests unterstützen.[6])
- Presto 2.10.232+[7] (Opera 12+[8])
CORS vs. JSONP
CORS kann als Alternative für JSONP genutzt werden. Während JSONP nur GET-Anfragen unterstützt, bietet CORS auch Unterstützung für andere HTTP-Anfragen. Mit der Verwendung von CORS ist es Webentwicklern möglich, normale XMLHttpRequests zu benutzen, die eine bessere Fehlerbehandlung als JSONP bieten. Auf der anderen Seite wird JSONP auch von Browsern unterstützt, die keine CORS-Unterstützung bieten.
Einzelnachweise
- ↑ W3C Arbeits Entwurf (englisch)
- ↑ https://developer.mozilla.org/En/HTTP_access_control
- ↑ https://developer.mozilla.org/en/Gecko
- ↑ a b http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
- ↑ http://osvdb.org/59940
- ↑ http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx
- ↑ http://www.opera.com/docs/specs/presto2.10/#m232
- ↑ http://my.opera.com/ODIN/blog/hello-opera-12
Weblinks
- Enable CORS (englisch)
- Mozilla Developer Network - Benutzer-Guide mit Anwendungsbeispielen (englisch)
- MSDN XDomainRequest Object - Beschreibung des Objektes (englisch)