RESKUE
TECHNOLOGIES

BASÉ À
PARIS, FRANCE

cors-policy-implications

Comprendre les CORS et leurs implications dans les appels aux APIs 

Les CORS (Cross-Origin Resource Sharing) sont un aspect essentiel de la sécurité web moderne, régissant la manière dont les navigateurs autorisent ou bloquent les requêtes d'accès à des ressources situées sur un domaine différent de celui de la page web en cours. Dans cet article, nous explorerons en profondeur ce concept et ses implications dans les appels aux APIs.

Qu'est-ce que CORS et pourquoi est-ce important ?

Lorsque vous visitez un site web, votre navigateur web exécute du code provenant de ce site. Le site en question a un domaine qui lui est propre. Si ce code essaie de charger des ressources (telles que des images, des scripts ou des données) à partir d'un autre domaine, alors une requête vers un serveur est nécessaire. 

Dans le cas où le Front n’est pas hébergé sur le même domaine que le Back, le navigateur effectue alors ce qu'on appelle une requête cross-origin. La plus part du temps, lorsque l’on développe un site web, c’est une structure répandue. 

Ainsi, sans mécanisme de sécurité approprié, une personne tiers pourrait accéder à des données sensibles ou même utiliser un service à mauvais escient. Les CORS sont conçus pour empêcher cela en permettant aux serveurs de définir explicitement quels domaines sont autorisés à accéder à leurs ressources.

Côté Client :

Du côté client, la première étape consiste à comprendre la politique CORS mise en place par le serveur API tiers. Les développeurs doivent s'assurer que leur application envoie les bons headers CORS avec chaque requête sortante. Des outils comme Axios se chargent généralement automatiquement d’ajouter ces headers.

Côté Serveur :

Côté serveur, les développeurs de l'API doivent configurer leur serveur pour répondre aux pré-vols CORS (Ou prefligth request en Anglais) et inclure les headers appropriés dans les réponses aux requêtes.

On reconnait généralement une requête préflight par sa méthode http “OPTIONS”. Cette requête précède la veritable requête en questionnant le serveur sur les méthodes autorisées pour le domaine courant. Ces méthodes peuvent être personnalisées dans les configuration du serveur. 

Implications pour la Sécurité et la Confidentialité :

Une mauvaise gestion des CORS peut entraîner des vulnérabilités de sécurité telles que les attaques CSRF (Cross-Site Request Forgery) et la fuite de données sensibles. Par conséquent, il est essentiel pour les développeurs de comprendre en profondeur les mécanismes CORS et de les mettre en œuvre pour garantir la sécurité et la confidentialité des utilisateurs de leurs applications.

Image-0

Les Reverse Proxy serveur, OU comment émettre une requete à partir d’un domaine  autorisé :

Le reverse proxy est un serveur qui se charge de rediriger les requêtes entrantes vers une autre url. Cela peut être utile notamment pour améliorer les performances d’un site internet en équilibrant la charge sur different serveur (load balancer). 

L’autre point intéressant et la possibilité d’émettre la requête entrante en changeant l’origine de celle ci. La requête sera donc émise depuis le reverse proxy. Si des APIs tierces autorisent le domaine du proxy, cela peut être un moyen de contourner la politique CORS pour le site internet qui n’est lui pas autorisé à accéder aux services de l’API tierce.

Image-0

On voit donc sur le schéma ci dessus, que le serveur ré émmet la requête provenant du site web, récupère la réponse de l’api, et renvoie un réponse au site web en utilisant l’origine validée du serveur proxy.

Conclusion :

En conclusion, les CORS jouent un rôle crucial dans la sécurisation des interactions entre les applications web et les APIs tiers. Une compréhension approfondie de leur fonctionnement et de leur mise en œuvre est essentielle pour garantir la sécurité et la confidentialité des données dans le paysage complexe et interconnecté du web moderne.

Crédits : Nicolas Burat De Gurgy

Feb 29, 2024
BRISONS LA GLACE ❄️

Un projet en tête? Nous serions ravis de vous partager notre avis

ou

eric@reskue.tech

+33 (0)6 18 56 17 22