Ist es möglich, Browser zu verhindern, dass CORS -CORS -Anfragen vorgenommen werden?
-
25-10-2019 - |
Frage
Ich erstelle eine API, die von JavaScript -Clients verwendet werden soll, die über CORS -Anfragen auf verschiedenen Domänen gehostet werden.
Auf meine API kann nur über HTTPS zugegriffen werden.
Ich möchte den Zugriff nur auf die JavaScript -Clients einschränken, die auch aus HTTPS -Domänen bedient werden.
Lesen der CORS Spec - http://www.w3.org/tr/cors/#user-agent-security - Es scheint, dass die meisten Benutzeragenten den HTTPS -Client automatisch an HTTP -API -Anforderungen verhindern.
Ist es möglich, das Gegenteil zu verlangen - dh verhindern, dass HTTP -Clients auf meine HTTPS -API zugreifen?
Lösung
Was ist mit der Überprüfung des Referer -Headers, um zu sehen, ob er mit "https" beginnt? Sie können auch überprüfen, ob der Referator der Ursprungsdomäne als Vernunftprüfung übereinstimmt.
Andere Tipps
Mir ist klar, dass dies ein bisschen spät kommt, aber ich stöbere heute CORS -Fragen.
Die Antwort ist, den "Origin" -Header in der Anfrage zu betrachten. Wenn es nicht mit beginnt mit https:
Lehnen Sie dann die Anfrage ab. Ich bin mir jedoch nicht sicher, wie der beste Statuscode verwendet wird. Wahrscheinlich a 403 Forbidden
Antwort.
Sie sollten Ihren Server so konfigurieren, dass nur HTTPS -Anrufe auf Ihrer API aufgerufen werden.