CORS (Cross-Origin Resource Sharing) ist ein sicherheitsrelevantes Feature von Webbrowsern, das es Web-Anwendungen ermöglicht, Ressourcen von einer anderen Domain anzufordern als derjenigen, von der die Anwendung selbst stammt. Dies kann hilfreich sein, wenn eine Webanwendung Daten von einer externen API oder einem anderen Webservice benötigt, der auf einer separaten Domain gehostet wird.
Standardmäßig beschränken Browser aus Sicherheitsgründen solche Anfragen, um das Risiko von Cross-Site-Scripting (XSS) und anderen Angriffen zu minimieren. CORS definiert eine Methode, wie Web-Server Header verwenden können, um die Browser darüber zu informieren, welche Anfragen von welchen Domains akzeptiert werden. Wenn der Server die Anfrage erlaubt, fügt er spezielle Header wie Access-Control-Allow-Origin
hinzu, die dem Browser signalisieren, dass die Anfrage sicher ist und die Daten zurückgeschickt werden dürfen.
Ein einfaches Beispiel wäre eine React Native App, die Daten von einer externen API abruft. Ohne ordnungsgemäß konfiguriertes CORS würde die Browser-Sicherheitsrichtlinie diese Anfrage blockieren. Der Server der externen API müsste CORS-Header aktivieren und konfigurieren, um Anfragen von der Domain der React Native App zuzulassen. Dies könnte durch Hinzufügen des folgenden Headers zum Server konfiguriert werden:
http
Access-Control-Allow-Origin: https://your-app-domain.com
Den Entwicklern stellt CORS also sicher, dass nur autorisierte Zugriffe auf Ressourcen von anderen Domains erfolgen dürfen, während gleichzeitig die Interoperabilität von Web-Apps und Diensten ermöglicht wird. Für App- und Web-Entwickler ist es daher wichtig, grundlegendes Verständnis und Kontrolle über CORS-Konfigurationen zu haben, um sowohl die Sicherheit als auch die Funktionalität ihrer Anwendungen zu gewährleisten.