Grundlagen der Webtechnologien
JavaScript auf einer Seite unter https://app.example.com will mit fetch eine POST-Anfrage mit einem Body vom Content-Type application/json an https://api.example.net/orders senden. Welche Aussage über das Verhalten von CORS in diesem Fall ist richtig?
- ACORS wirkt auch außerhalb von Browsern; ohne Erlaubnis des Servers wird daher auch ein mit einem Kommandozeilenwerkzeug gesendeter POST unterwegs im Netz gestoppt
- BDer Browser sendet zuerst mit der Methode OPTIONS eine Vorabprüfung (Preflight) und sendet den eigentlichen POST nur, wenn der Server in seinen Headern die Erlaubnis zurückgibt
- CAnfragen an einen anderen Ursprung werden immer ohne Prüfung gesendet, und das JavaScript der Seite kann die Antwort lesen, auch wenn der Server ihr nichts hinzufügt
Antwort und Erläuterung anzeigen
Antwort: B. Der Browser sendet zuerst mit der Methode OPTIONS eine Vorabprüfung (Preflight) und sendet den eigentlichen POST nur, wenn der Server in seinen Headern die Erlaubnis zurückgibt
CORS ist ein Mechanismus, der Anfragen an andere Ursprünge und das Lesen ihrer Antworten, die die Same-Origin-Policy einschränkt, in dem vom Server erlaubten Umfang zulässt. Ein POST mit dem Content-Type application/json ist eine Art von Anfrage, die ein einfaches Formular nicht erzeugen kann; deshalb teilt der Browser zuerst mit OPTIONS die Methode und die Header mit, die er verwenden will, und fragt nach der Erlaubnis. Enthält die Antwort des Servers keine Erlaubnis über Header wie Access-Control-Allow-Origin, sendet der Browser die eigentliche Anfrage nicht. CORS ist eine Regel, die der Browser einhält; der Server muss sich daher zusätzlich mit Authentifizierung und Berechtigungsprüfungen selbst schützen.