Comment activer les COR dans Nginx

Comment activer les COR dans Nginx

Partage de ressources d'origine inter-originaux (CORS) est une fonction de sécurité importante pour les applications Web. Il permet aux applications Web d'utiliser des ressources à partir d'autres domaines tout en empêchant l'accès malveillant. En permettant aux COR de Nginx, nous pouvons nous assurer que nos applications Web sont sécurisées et qu'ils peuvent accéder aux ressources à partir d'autres domaines. Avec la bonne configuration, nous pouvons nous assurer que les demandes malveillantes sont bloquées et que nos applications sont sécurisées.

Dans cet article, nous examinerons comment activer les COR dans Nginx.

Comment activer les COR dans Nginx

Nginx est un serveur Web open source qui est souvent utilisé pour servir le contenu statique. Il est également utilisé pour proxy les demandes à d'autres serveurs Web, tels que Apache. Afin d'activer les COR dans Nginx, nous devons ajouter quelques directives de configuration.

Une configuration simple pour activer les COR dans Nginx ressemble à ceci:

emplacement / add_header "Access-Control-Allow-Origin" *; add_header "Access-Control-Allow-Methods" "Get, Post, Options"; add_header "Access-Control-Allow-Headers" "Autorisation";
12345emplacement / add_header "Access-Control-Allow-Origin" *; add_header "Access-Control-Allow-Methods" "Get, Post, Options"; add_header "Access-Control-Allow-Headers" "Autorisation";

La première directive ajoute une en-tête à la réponse qui permet à toutes les origines d'accéder à la ressource. La deuxième directive ajoute un en-tête qui spécifie les méthodes autorisées. La troisième directive ajoute un en-tête qui permet à l'en-tête d'autorisation d'être envoyé avec des demandes.

En plus de ces directives, vous devez également configurer un sous-URL dans votre configuration Nginx. Ce bloc spécifiera quelles URL spécifiques peuvent être accessibles via CORS. Par exemple:

emplacement / api / add_header "Access-Control-allow-Origin" *; add_header "Access-Control-Allow-Methods" "Get, Post, Options"; add_header "Access-Control-Allow-Headers" "Autorisation";
12345emplacement / api / add_header "Access-Control-allow-Origin" *; add_header "Access-Control-Allow-Methods" "Get, Post, Options"; add_header "Access-Control-Allow-Headers" "Autorisation";

Cette configuration permettra à toute origine d'accéder aux URL qui commencent / api /. Il est également possible de spécifier des domaines spécifiques autorisés à accéder à la ressource. Par exemple:

Emplacement / API / add_header "Access-Control-Allow-Origin" "https: // Exemple.com "; add_header" Access-Control-Allow-Methods "" Get, Post, Options "; add_header" Access-Control-Allow-Headers "" Autorisation ";
12345Emplacement / API / add_header "Access-Control-Allow-Origin" "https: // Exemple.com "; add_header" Access-Control-Allow-Methods "" Get, Post, Options "; add_header" Access-Control-Allow-Headers "" Autorisation ";

Cela permettra uniquement les demandes de l'exemple.com pour accéder aux URL qui commencent / api /. Vous pouvez autoriser plusieurs domaines en répétant cette ligne avec d'autres domaines.

Autoriser Access-Control-Allow-Origin (CORS) Autorisation pour les fichiers spécifiques uniquement. Par exemple, pour autoriser les polices CORS, utilise uniquement l'exemple suivant:

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

Une fois que vous avez ajouté les directives de configuration nécessaires, vous pouvez redémarrer Nginx et les modifications prendront effet.

Configuration des CORS Nginx largement ouvertes

Voici le fichier de configuration Nginx CORS large ou ouvert, que vous pouvez utiliser avec les serveurs Nginx. Avec cette configuration, vous pouvez activer CORS et autres paramètres en fonction des types de demande.

Emplacement / if ($ request_method = 'options') add_header 'Access-Control-Allow-Origin "*'; # # # OM NOM COOKIES # add_header 'Access-Control-allow-Credentials" true'; add_header 'Access-Control-Allow-Methods "Get, Post, Options'; # # Les en-têtes personnalisés et les en-têtes divers navigateurs * devraient * être OK avec mais ne sont pas # add_header 'Access-Control-Allow-Headers" DNT, X- CustomHeader, Keep-Alive, User-Agent, X-Demande avec, if-modifié-surce, Cache-Control, Content-Type '; # # Tell Client que ces informations avant le vol sont valables pour 20 jours # add_header 'Access-Control-MAX-Age' 1728000; Add_header 'Content-Type "Text / PLAIN CHARSET = UTF-8'; add_header 'Content-Length' 0; return 204; if ($ request_method = 'post') add_header 'Access-Control-allow-Origin" *' ; add_header 'Access-Control-allow-Credentials "True'; add_header 'Access-Control-Allow-Methods" Get, Post, Options'; add_header 'Access-Control-allow-Headers "DNT,X-CustomHeader, Keep-Alive, User-Agent, X-Debeted-with, if-modified-sice, Cache-Control, Content-Type '; if ($ request_method = 'get') add_header 'Access-Control-Allow-Origin "*'; add_header 'Access-Control-allow-Credentials" True'; add_header 'Access-Control-allow-Methods "Get, Post, Options'; add_header 'Access-Control-Allow-Headers" DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Request with, if-modified -Sice, Cache-Control, Content-Type ';
1234567891011121314151617181920212223242526272829303132333435emplacement / if ($ request_method = 'options') add_header 'Access-Control-allow-Origin' '*'; # # OM NOM NOM COOKIES # add_header 'Access-Control-Allow-Credentials' 'True'; add_header 'Access-Control-allow-Methods' 'Get, Post, Options'; # # Les en-têtes et en-têtes personnalisés divers navigateurs * devraient * être ok avec mais ne sont pas # add_header 'Access-Control-allow-Headers' 'dnt, x-customheader, keep-alive, user-agent, x-requied avec, Si-modifié-sice, Cache-Control, Content-Type '; # # Tell Client que ces informations avant le vol sont valables pour 20 jours # add_header 'Access-Control-MAX-Age' 1728000; Add_header 'Content-Type' 'Text / Plain Charset = UTF-8'; add_header 'Content-Length' 0; retour 204; if ($ request_method = 'post') add_header 'Access-Control-allow-Origin' '*'; add_header 'Access-Control-allow-Credentials' 'True'; add_header 'Access-Control-allow-Methods' 'Get, Post, Options'; add_header 'Access-Control-Autorce-Headers '' DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Demande avec, if-modifié, Cache-Control, Content-Type '; if ($ request_method = 'get') add_header 'Access-Control-allow-Origin' '*'; add_header 'Access-Control-allow-Credentials' 'True'; add_header 'Access-Control-allow-Methods' 'Get, Post, Options'; add_header 'Access-Control-Allow-Headers' 'DNT, X-CustomHeader, Keep-Alive, User-Agent, X-Demande avec, if-modifié-surce, Cache-Control, Content-Type';

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

Tester la configuration de votre CORS

Une fois que vous avez activé CORS dans Nginx, vous devez tester votre configuration pour vous assurer qu'elle fonctionne correctement. La façon la plus simple de le faire est d'utiliser un outil tel que Postman ou Curl pour faire une demande à la ressource que vous souhaitez tester.

Lorsque vous faites la demande, vous devez ajouter l'en-tête d'origine. Par exemple, si vous testez une URL qui commence par / api /, vous devez ajouter l'origine de l'en-tête: https: // exemple.com. Vous devez également ajouter l'en-tête d'accès-contrôle-request-méthode avec la méthode que vous souhaitez tester.

curl -v http: // your_domain.com  

Une fois que vous avez fait la demande, vous devriez vérifier la réponse. Si CORS est correctement activé, vous devriez voir l'en-tête d'accès à l'origine allow-allow avec la valeur de l'origine que vous avez spécifiée dans la demande.

Comprendre les demandes CORS

Afin de comprendre comment fonctionne CORS, il est important de comprendre les différents types de demandes qui peuvent être envoyées. Il existe deux types de demandes: les demandes simples et les demandes de premier plan.

Les demandes simples sont des demandes qui ne nécessitent pas de chèques de pointe. Ces demandes sont généralement des demandes d'obtention ou de publication qui n'ont pas d'en-têtes personnalisées.

Les demandes de premier plan sont des demandes plus complexes qui nécessitent une étape supplémentaire. Ces demandes auront généralement des en-têtes personnalisés ou une méthode autre que d'obtenir ou de publier. Avant que la demande ne puisse être envoyée, le navigateur fera une demande initiale, connue sous le nom de demande de premier plan, pour déterminer si la demande devrait être autorisée.

Si la demande de premier plan est autorisée, le navigateur enverra alors la demande réelle. Si la demande de premier plan n'est pas autorisée, le navigateur n'enverra pas la demande réelle et la ressource ne sera pas accessible.

Processus de partage des ressources (CORS) d'origine croisée

Conclusion

Dans cet article, nous avons examiné comment activer CORS dans Nginx. Nous avons vu comment ajouter les directives de configuration et les blocs de localisation nécessaires à notre configuration Nginx. Nous avons également examiné comment tester notre configuration CORS et comment comprendre les demandes CORS.

Merci d'avoir lu! Si vous avez des questions ou des commentaires, veuillez les laisser dans la section des commentaires ci-dessous.