Was ist CORS?

CORS oder Cross-Origin Resource Sharing ist eine von zwei Ressourcendynamiken, die in der Browser-API-Kommunikation üblich sind (die andere ist „Same-Origin“). Im Wesentlichen verhindern Same-Origin-Richtlinien Cross-Origin-Anfragen – Anfragen, die nicht vom gleichen Ursprung wie die gehosteten Daten kommen, werden abgelehnt und schützen die Ursprungsquelle vor einer Vielzahl komplexer Angriffe, einschließlich domänenübergreifender Skripte, Weiterleitungen und mehr .

Dies dient zwar dem Schutz des Endbenutzers, kann jedoch auch ein erheblicher Entwicklungsblocker sein. Aus diesem Grund verwenden Entwickler häufig einen Proxy. Vereinfacht gesagt nimmt ein Proxy eine Anfrage entgegen und leitet sie über eine vorgegebene URL weiter – in den meisten Fällen übergibt er diese URL mit einer CORS-Header-Variable, die die Behinderung des internen Dienstes beseitigt.

Hier gibt es einige Auswirkungen auf die Sicherheit (die wir gleich besprechen werden), aber letztendlich dient dieser Proxy als transformative Zwischenschicht, die es ermöglicht, CORS-Probleme vollständig zu umgehen.

Ursprungsübergreifende gemeinsame Nutzung von Ressourcen

Bei der Entwicklung von Anwendungen kann ein CORS-Fehler ein nerviger und Workflow-unterbrechender Fehler sein. Obwohl das CORS-Verbot in erster Linie zum Schutz des Endbenutzers gedacht ist, kann es den Datenfluss oft überkomplizieren und bei der Entwicklung Kopfschmerzen verursachen. Eine einfache Lösung hierfür ist die Verwendung eines CORS-Proxys.

Proxy-Anwendungsfälle

Es gibt im Wesentlichen zwei Anwendungsfälle für CORS-Proxys.

Interne Proxys: In einigen Fällen kommen CORS-Probleme von intern konsistenten, jedoch domänengetrennten Anfragen. In diesen Fällen sind die URL und die URIs möglicherweise auf Servern vorhanden, die vertrauenswürdig sind, aber da sie sich in separaten Domänen befinden, verursacht CORS erhebliche Probleme bei der Kommunikation. Die beste Lösung für diese Art von Anwendungsfall sind normalerweise lokale Installationen und Implementierungen.

Externe Proxys: In externen Fällen muss eine API möglicherweise zeitweise externe Ressourcen erreichen. Unabhängig davon, ob dies selten genug vorkommt, um die CORS-Verwaltung nicht zu rechtfertigen, oder dass CORS einfach nicht mit dem aktuellen API-Ansatz kompatibel ist, gibt es Zeiten, in denen CORS-Unterstützung benötigt wird, ohne dass die grundlegenden Prozesse auf dem Server dies ermöglichen. Externe Proxys, die normalerweise von Servern von Drittanbietern verwaltet werden, sind hier eine großartige Lösung.