Cross-Origin Resource SharingCross-Origin Resource Sharing (CORS), deutsch: „Ursprungsübergreifende Ressourcenfreigabe“, ist ein Mechanismus, der Webbrowsern oder auch anderen Webclients Cross-Origin-Requests ermöglicht.[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. SchutzzielDie SOP und die CORS-Regeln schützen die Ressourcen eines Webservers vor unerwünschten Zugriffen durch Browser, die sich im Kontext einer anderen Domain befinden. Das bedeutet: Durch CORS reglementiert der Betreiber eines Webservers den Zugriff auf dessen Ressourcen – also z. B. Daten, die der Server über eine Web-Schnittstelle verfügbar macht. Der Betreiber des Servers kann durch CORS Ausnahmen für Domains erstellen, aus deren Kontext der Browserzugriff möglich sein soll. Browser, die sich auf kompromittierten oder bösartigen Webseiten befinden, lehnen bei richtiger CORS-Konfiguration den Zugriff auf den fremden Server ab. Die Durchsetzung der Schutzziele anhand der vom angefragten Server definierten CORS-Regeln obliegt also dem Browser.[2][3] Dadurch schützen die Browser ihre Benutzer davor, dass fremde Webseiten über den Browser des Benutzer auf Ressourcen zugreifen, die nicht für sie gedacht sind. Das trägt dazu bei, die Vertraulichkeit, Integrität und Verfügbarkeit der geschützten Ressourcen auf dem Server zu schützen. FunktionsweiseDie 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 eines Skripts auf einer Webseite, z. B. HTTP-Header, gesetzt durch den Server
Weitere CORS-Ressource, die ausschließlich über die HTTP-GET Methode erreichbar ist:
Browser-UnterstützungCORS wird von folgenden Rendering-Engines unterstützt:
CORS vs. JSONPCORS 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 bzw. die JavaScript Fetch API 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
Weblinks
|