English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie aktiviere ich CORS in Apache und Nginx?

Cors Apache Nginx
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Beschränken oder erlauben Sie die gemeinsame Nutzung von Ressourcen zwischen Standorten mithilfe des CORS-Headers.

Der CORS-Header (Cross-Origin Resource Sharing) wird von allen modernen Browsern unterstützt.

Kann ich cors verwenden? Daten zur Unterstützung der Cors sind in den wichtigsten Browsern von caniuse.com verfügbar.

Standardmäßig beschränkt der Browser Ursprungsübergreifende HTTP-Anforderungen über Skripte. Und, CORS kann nützlich sein, um die allgemeinen Anwendungsressourcen in anderen Webanwendungen wiederzuverwenden. Sobald es korrekt hinzugefügt wurde, weist es den Browser an, 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.

Access-Control-Allow-Origin

Die beliebteste, die den Browser anweist, die Ressourcen auf den zulässigen Ursprung zu laden. Es unterstützt Platzhalter (*) und dabei 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://geekflare.dev zuzulassen. Fügen Sie Folgendes in das Feld ein server Block aus nginx.conf oder verwendete Konfigurationsdatei.

add_header Access-Control-Allow-Origin "https://geekflare.dev";

Access-Control-Allow-Methods

Der Browser kann eine oder mehrere HTTP-Methoden für den Zugriff auf die Ressourcen initiieren. Beispiel: - GET, PUT, OPTIONEN, 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-Headers

Die folgenden Überschriften befinden sich in der Sicherheitsliste, dh Sie müssen keine hinzufügen. Es sollte standardmäßig funktionieren.

  • Content-Type
  • Akzeptieren
  • 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-Headers

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";

Access-Control-Max-Age

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+).

Um das Caching zu deaktivieren, können Sie den Wert als 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.

Access-Control-Allow-Credentials

Es gibt hier nur eine Option - true. This ist zuzulassen, wenn Sie Anmeldeinformationen wie Cookies, TLS-Zertifikate, Autorisierung verfügbar machen möchten.

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 die im Browser integrierten Entwicklertools oder ein Online-HTTP-Header-Checker.

Conclusion

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.

Danke an unsere Sponsoren
Weitere großartige Lektüren zu Apache HTTP
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder