So aktivieren Sie CORs in nginx

So aktivieren Sie CORs in nginx

Cross-Origin-Ressourcenfreigabe (CORS) ist eine wichtige Sicherheitsfunktion für Webanwendungen. Es ermöglicht Webanwendungen, Ressourcen aus anderen Domänen zu verwenden und gleichzeitig einen böswilligen Zugriff zu vermeiden. Durch Aktivieren von CORs in NGINX können wir sicherstellen, dass unsere Webanwendungen sicher sind und dass sie von anderen Domänen auf Ressourcen zugreifen können. Mit der richtigen Konfiguration können wir sicherstellen, dass böswillige Anforderungen blockiert sind und unsere Anwendungen sicher sind.

In diesem Artikel werden wir uns ansehen, wie CORs in Nginx aktiviert werden können.

So aktivieren Sie CORs in nginx

Nginx ist ein Open-Source-Webserver, mit dem häufig statische Inhalte bereitgestellt werden. Es wird auch verwendet, um Anforderungen an andere Webserver wie Apache zu proxy. Um CORs in Nginx zu aktivieren, müssen wir einige Konfigurationsanweisungen hinzufügen.

Eine einfache Konfiguration, um CORs in Nginx zu ermöglichen, sieht Folgendes aus:

location / add_header "Access-Control-Allow-Origin" *; add_Header "Access-Control-Blow-Methoden" "Get, post, Optionen"; add_Header "Access-Control-Allow-Header" "Autorisierung";
12345location / add_header "Access-Control-Allow-Origin" *; add_Header "Access-Control-Blow-Methoden" "Get, post, Optionen"; add_Header "Access-Control-Allow-Header" "Autorisierung";

Die erste Richtlinie fügt der Antwort einen Header hinzu, der es allen Ursprüngen ermöglicht, auf die Ressource zuzugreifen. Die zweite Richtlinie fügt einen Header hinzu, der angibt, welche Methoden zulässig sind. Die dritte Richtlinie fügt einen Header hinzu, mit dem der Autorisierungsheader mit Anfragen gesendet werden kann.

Zusätzlich zu diesen Direktiven müssen Sie eine Sub -URL in Ihrer NGINX -Konfiguration konfigurieren. Dieser Block gibt an, auf welche spezifischen URLs über CORs zugegriffen werden dürfen. Zum Beispiel:

location / api / add_header "access-control-allow-origin" *; add_Header "Access-Control-Blow-Methoden" "Get, post, Optionen"; add_Header "Access-Control-Allow-Header" "Autorisierung";
12345location / api / add_header "access-control-allow-origin" *; add_Header "Access-Control-Blow-Methoden" "Get, post, Optionen"; add_Header "Access-Control-Allow-Header" "Autorisierung";

Diese Konfiguration ermöglicht es jedem Ursprung, auf die URLs zuzugreifen, die mit beginnen /api/. Es ist auch möglich, bestimmte Domänen anzugeben, die auf die Ressource zugreifen dürfen. Zum Beispiel:

Standort/api/add_Header "Access-control-allow-origin" "https: // Beispiel.com "; add_header" Access-Control-Allow-Methoden "" Get, post, options "; add_header" Access-Control-Allow-Header "" Autorisierung ";
12345Standort/api/add_Header "Access-control-allow-origin" "https: // Beispiel.com "; add_header" Access-Control-Allow-Methoden "" Get, post, options "; add_header" Access-Control-Allow-Header "" Autorisierung ";

Dies ermöglicht nur Anfragen von Beispiel.com, um auf die URLs zuzugreifen, die mit beginnen /api/. Sie können mehrere Domänen zulassen, indem Sie diese Linie mit anderen Domänen wiederholen.

Erlauben Zugangskontroll-Allow-Origin (CORS) nur die Autorisierung für bestimmte Dateien. Zum Beispiel verwendet CORs für Schriftarten nur das folgende Beispiel:

if ($ Dateiname ~* ^.*?\.(eot) | (otf) | (ttf) | (woff) $) add_header access-control-allow-origin *;
123if ($ Dateiname ~* ^.*?\.(eot) | (otf) | (ttf) | (woff) $) add_header access-control-allow-origin *;

Sobald Sie die erforderlichen Konfigurationsanweisungen hinzugefügt haben, können Sie Nginx neu starten und die Änderungen werden wirksam werden.

Weit geöffnete Nginx CORS -Konfiguration

Hier finden Sie die breite Nginx CORS-Konfigurationsdatei, die Sie mit den Nginx-Servern verwenden können. Mit dieser Konfiguration können Sie CORs und andere Parameter basierend auf den Anforderungsarten aktivieren.

location / if ($ request_method = 'options') add_header 'access-control-allow-origin "*'; # # om nom nom cookies # add_header 'Access-Control-Burge-Credentials" True'; add_header 'Access-Control-Allow-Methoden "Get, post, Optionen'; # benutzerdefinierte Header und Header Verschiedene Browser * sollten * in Ordnung sein, aber nicht add_header 'Access-Control-Blow-Headers" DNT, X- CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Typ '; # # Sagen Sie den Client, dass diese Informationen vor dem Flug für 20 Tage gültig sind. add_header 'content-type "text/plain charset = utf-8'; add_header 'content-length' 0; return 204; if ($ request_method = 'post') add_header 'Access-control-origin-origin"**' ; add_Header 'Access-Control-Allow-Credentials "True'; add_header 'Access-Control-Blox-Methoden" Get, post, Optionen'; add_Header 'Access-Control-Allow-Header "DNT,X-CustomHeader, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Typ '; if ($ request_method = 'get') add_header 'access-control-allow-origin "*'; add_Header 'Access-Control-Credentials" True'; Add_header 'Access-Control-Blox-Methoden "Get, post, options'; add_header 'Access-Control-Allow-Header" DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Equested-With, If-modifiziert, if-modifiziert -Since, Cache-Control, Content-Typ ';
1234567891011121314151617181920212223242526272829303132333435location / if ($ request_method = 'options') add_header 'access-control-allow-origin' '*'; # # Om nom nom cookies # add_header 'access-control-allow-kredite' 'true'; add_header 'access-control-tlow-methods' '' Get, post, option '; # # Benutzerdefinierte Header und Header Verschiedene Browser * sollten * in Ordnung sein, aber sind nicht # add_header 'Access-Control-Allow-Header' '' DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Anrequesting-with. If-modifizierte Since, Cache-Control, Content-Typ '; # # Sagen Sie den Client, dass diese Informationen vor dem Flug für 20 Tage gültig sind. add_header 'content-type' 'text/plain charset = utf-8'; add_Header 'Inhaltslänge' 0; Rückkehr 204; if ($ request_method = 'post') add_header 'access-control-allow-origin' '*'; add_header 'Access-Control-Allow-Credentials' 'True'; add_header 'access-control-tlow-methods' '' Get, post, option '; Add_header 'Access-Control-Zulassungs-Headers 'DNT, X-Customheader, Keep-Alive, User-Agent, X-Equested-With, If-Modified-Since, Cache-Control, Content-Typ'; if ($ request_method = 'get') add_header 'access-control-allow-origin' '*'; add_header 'Access-Control-Allow-Credentials' 'True'; add_header 'access-control-tlow-methods' '' Get, post, option '; add_Header 'Access-Control-Allow-Header' 'DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Equested-With, If-Modified-Since, Cache-Control, Content-Typ';

Ressource: https: // Michielkalkman.com/snippets/nginx-cors-open-configuration/

Testen Sie Ihre CORS -Konfiguration

Sobald Sie CORs in Nginx aktiviert haben, sollten Sie Ihre Konfiguration testen, um sicherzustellen, dass sie ordnungsgemäß funktioniert. Der einfachste Weg, dies zu tun.

Bei der Anfrage sollten Sie den Origin -Header hinzufügen. Zum Beispiel, wenn Sie eine URL testen, die mit beginnt /api/, Sie sollten den Header -Ursprung hinzufügen: https: // Beispiel.com. Sie sollten auch den Header mit Zugriffskontroll-Request-Methoden mit der Methode, die Sie testen möchten, hinzufügen.

curl -v http: // your_domain.com  

Sobald Sie die Anfrage gestellt haben, sollten Sie die Antwort überprüfen. Wenn CORs ordnungsgemäß aktiviert ist, sollten Sie den Header für Zugriffskontroll-Owl-Origin mit dem Wert des in der Anforderung angegebenen Ursprungs ansehen.

CORS -Anfragen verstehen

Um zu verstehen, wie CORs funktioniert, ist es wichtig, die verschiedenen Arten von Anfragen zu verstehen, die gesendet werden können. Es gibt zwei Arten von Anfragen: einfache Anfragen und Anfragen vor dem Flug.

Einfache Anfragen sind Anfragen, für die keine Vorflugprüfungen erforderlich sind. Diese Anfragen werden in der Regel Anfragen erhalten oder nach postenden Anfragen haben, die keine benutzerdefinierten Header haben.

Preflight -Anfragen sind komplexere Anfragen, die einen zusätzlichen Schritt erfordern. Diese Anfragen haben in der Regel benutzerdefinierte Header oder eine andere Methode als Get oder Post. Bevor die Anfrage gesendet werden kann.

Wenn die Anforderung vor dem Flug zulässig ist, sendet der Browser die tatsächliche Anfrage. Wenn die Anforderung vor dem Flug nicht zulässig ist, sendet der Browser die tatsächliche Anfrage nicht und auf die Ressource wird nicht zugegriffen.

CORS-Prozess (Cross-Origin-Ressourcenfreigabe)

Abschluss

In diesem Artikel haben wir uns angesehen, wie CORs in Nginx aktiviert werden können. Wir haben gesehen. Wir haben uns auch angesehen, wie wir unsere CORS -Konfiguration testen und wie man CORS -Anfragen versteht.

Danke fürs Lesen! Wenn Sie Fragen oder Kommentare haben, hinterlassen Sie sie bitte im Kommentarbereich unten.