Wie aktiviere ich CORS in Apache und Nginx?
Beschränken oder erlauben Sie die gemeinsame Nutzung von Ressourcen zwischen Standorten mithilfe des CORS-Headers.
Der CORS-Header (Cross-Origin Resource Sharing) wird auf allen modernen b unterstütztrowsERS.
Standardmäßig ist das browsEr schränkt ursprungsübergreifende HTTP-Anfragen über Skripte ein. Und, CORS kann nützlich sein, um die gemeinsamen Anwendungsressourcen in anderen Webanwendungen wiederzuverwenden. Sobald es korrekt hinzugefügt wurde, weist es den b anrowsEs ist möglich, die Anwendung von einem anderen Ursprung zu laden.
Es gibt sechs beliebte Arten von CORS-Headern, die ein Server senden kann. Lassen Sie uns sie erkunden.
Zugriffskontrolle-Zulassen-Ursprung
Das beliebteste, das es dem B erzähltrowsEr lädt die Ressourcen auf den zulässigen Ursprung. Es unterstützt Platzhalter (*) und somit kann jede Domäne die Ressourcen laden. Es besteht jedoch die Möglichkeit, einen bestimmten Ursprung zuzulassen.
Apache
Fügen Sie Folgendes hinzu httpd.conf
oder eine andere verwendete Konfigurationsdatei.
Header set Access-Control-Allow-Origin "*"
Starten Sie den zu testenden Apache neu. Sie sollten sie in Antwortheadern sehen.
Um einen bestimmten Ursprung zuzulassen (z. B. https://gf.dev), können Sie Folgendes verwenden.
Header set Access-Control-Allow-Origin "https://gf.dev"
Nginx
Hier ist ein Beispiel, um den Ursprung https:// zuzulassen.geekflare.dev. Fügen Sie Folgendes hinzu server
Block aus nginx.conf
oder verwendete Konfigurationsdatei.
add_header Access-Control-Allow-Origin "https://geekflare.dev";
Zugriffssteuerungs-Zulassungsmethoden
Die browsEr kann initiierenate eine oder mehrere HTTP-Methoden für den Zugriff auf die Ressourcen. Beispiel: – GET, PUT, OPTIONS, PUT, DELETE, POST
Apache
Nur GET und POST zulassen.
Header add Access-Control-Allow-Methods "GET, POST"
Nginx
Angenommen, Sie müssen die Methoden DELETE und OPTIONS hinzufügen, dann können Sie wie folgt hinzufügen.
add_header Access-Control-Allow-Methods "DELETE, OPTIONS";
Nach dem Neustart sollten Sie sie in den Antwortheadern sehen.
Access-Control-Allow-Header
Die folgenden Überschriften befinden sich in der Sicherheitsliste, dh Sie müssen keine hinzufügen. Es sollte standardmäßig funktionieren.
- Content-Type
- Accept
- Inhaltssprache
- Akzeptanz-Sprache
Wenn Sie jedoch eine benutzerdefinierte hinzufügen müssen, können Sie dies tun. Es unterstützt einen oder mehrere Header.
Apache
Angenommen, Sie möchten zulassen X-Custom-Header
und X-Powered-By
Überschriften.
Header always set Access-Control-Allow-Headers "X-Custom-Header, X-Powered-By"
Nach einem Neustart sollte das Ergebnis in den Antwortheadern angezeigt werden.
Nginx
Ein Beispiel für das Hinzufügen von X-Customer-Software und X-My-Custom-Headern.
add_header Access-Control-Allow-Headers "X-Custom-Software, X-My-Custom";
Access-Control-Expose-Header
Die folgenden Header sind bereits eine sichere Liste. Das heißt, Sie müssen nichts hinzufügen, wenn Sie sie verfügbar machen möchten.
- Läuft ab
- Pragma
- Cache-Control
- Zuletzt geändert
- Inhaltssprache
- Content-Type
Wenn Sie jedoch eine andere als die sichere Liste benötigen, können Sie diese wie folgt zulassen.
Apache
Verwenden Sie einen Platzhalter, um alle Header verfügbar zu machen.
Header always set Access-Control-Expose-Headers "*"
Hinweis: Ein Platzhalter wird immer noch nicht verfügbar gemacht Authorization
Header, und wenn Sie einen benötigen, müssen Sie explizit erwähnen.
Header always set Access-Control-Expose-Headers "Authorization, *"
Das Ergebnis sollte so aussehen.
Nginx
Wenn Sie belichten möchten Origin
Header.
add_header Access-Control-Expose-Headers "Origin";
Zugangskontrolle-Max.-Alter
Kennen Sie die Daten von Access-Control-Allow-Headers
und Access-Control-Allow-Methods
Header können zwischengespeichert werden? Es kann bis zu 24 Stunden in Firefox zwischengespeichert werden, 2 Stunden in Chrome (76+).
Zu disable Durch das Caching können Sie den Wert beibehalten -1
Apache
15 Minuten zwischenspeichern.
Header always set Access-Control-Max-Age "900"
Wie Sie sehen können, ist der Wert in Sekunden.
Nginx
Für eine Stunde zwischenspeichern.
add_header Access-Control-Max-Age "3600";
Starten Sie Nginx nach dem Hinzufügen neu, um die Ergebnisse anzuzeigen.
Zugangskontrolle-Zulassen-Anmeldeinformationen
Es gibt hier nur eine Option - true. This
ist zuzulassen, wenn Sie Anmeldeinformationen wie Cookies oder TLS-Zertifikate offenlegen möchtenates, Autorisierung.
Apache
Header always set Access-Control-Allow-Credentials "true"
Nginx
add_header Access-Control-Allow-Credentials "true";
und das Ergebnis.
Überprüfen der Ergebnisse
Sobald die erforderlichen Header hinzugefügt wurden, können Sie entweder b verwendenrowsEr eingebaute Entwicklertools oder ein Online-HTTP-Header-Checker.
Fazit
Ich hoffe, dass das oben Genannte Ihnen hilft, den CORS-Header in Apache HTTP und auf dem Nginx-Webserver für eine bessere Sicherheit zu implementieren. Sie könnten auch daran interessiert sein, sich zu bewerben OWASP empfahl sichere Header.