Cross-Origin Resource Sharing (CORS) est un mécanisme qui permet aux applications Web de demander des ressources à un domaine différent de celui qui a servi la page Web. Bien qu’il s’agisse d’une fonctionnalité essentielle pour les applications Web modernes, elle peut également introduire des complications, notamment lorsque les requêtes sont bloquées en raison de politiques de sécurité. Ce guide expliquera ce qu'est CORS, pourquoi il est important, les problèmes courants et les meilleures pratiques pour gérer CORS dans le développement frontend.
CORS est une fonctionnalité de sécurité mise en œuvre par les navigateurs pour empêcher les sites Web malveillants d'accéder aux ressources d'autres domaines sans autorisation. Il utilise des en-têtes HTTP pour déterminer si une requête provenant d'une origine (domaine) est autorisée à accéder aux ressources d'une autre origine.
Fondamentalement, un domaine ne peut pas accéder aux données d’un autre domaine pour empêcher les applications et toutes les programmes malveillants, virus et autres. Dans ce cas, le serveur doit connaître les détails des domaines autorisés qui sont configurés à l'aide de CORS.
Access-Control-Allow-Origin: Spécifie quelles origines peuvent accéder à la ressource.
Access-Control-Allow-Methods: Spécifie quelles méthodes HTTP (GET, POST, etc.) sont autorisées.
Access-Control-Allow-Headers: Spécifie quels en-têtes HTTP peuvent être utilisés lors de la requête réelle.
Access-Control-Allow-Credentials: Indique si la réponse à la demande peut ou non être exposée lorsque l'indicateur d'informations d'identification est vrai.
Access-Control-Expose-Headers: Spécifie quels en-têtes peuvent être exposés dans le cadre de la réponse.
Access-Control-Max-Age: Indique la durée pendant laquelle les résultats d'une demande de contrôle en amont peuvent être mis en cache.
CORS est crucial pour la sécurité, empêchant tout accès non autorisé aux informations sensibles. Cependant, des politiques CORS strictes peuvent également entraver les requêtes API légitimes, entraînant des problèmes de fonctionnalité dans votre application Web. Comprendre et configurer correctement CORS est essentiel pour garantir à la fois la sécurité et la fonctionnalité.
Bloqué par la politique CORS: Cela se produit lorsque le serveur n'inclut pas les en-têtes CORS appropriés.
Échec de la demande de contrôle en amont: Lorsqu'une demande de contrôle en amont (OPTIONS) est effectuée et que le serveur ne répond pas correctement.
Credentialed Requests: Lorsque des cookies ou des en-têtes d'authentification sont inclus, le serveur doit explicitement autoriser les informations d'identification.
Dans cet article, nous utiliserons la bibliothèque cors npm qui peut être facilement transmise comme middleware express et peut également être utilisée avec React
Tout d'abord, installez cors en exécutant la commande
npm installer cors
Le moyen le plus efficace de gérer les problèmes CORS consiste à configurer le serveur pour autoriser les requêtes d'origine croisée. Le moyen le plus optimal consiste à configurer CORS côté serveur afin que le frontend (React.js) puisse communiquer de manière transparente avec le backend. Cela implique de définir plusieurs propriétés
Exemple : Node.js avec Express
const express = require('express'); const cors = require('cors'); const app = express(); const corsOptions = { origin: 'http://example.com', // specify the allowed origin methods: 'GET,POST,PUT,DELETE', // allowed methods allowedHeaders: 'Content-Type,Authorization', // allowed headers credentials: true, // allow credentials }; app.use(cors(corsOptions)); app.get('/api/data', (req, res) => { res.json({ message: 'This is CORS-enabled for only example.com.' }); }); app.listen(3000, () => { console.log('Server running on port 3000'); });
Vous pouvez utiliser * pour les méthodes, AllowedHeaders pour autoriser chaque méthode ou en-tête
Propriété d'origine :
// specify the allowed origin (single domain), origin: 'http://example.com', // configure cors to set the origin to the request origin origin:true // set multiple domains origin:["http://example.com","https://demo.com"]
Si vous ne contrôlez pas le serveur ou si vous avez besoin d'une solution rapide pendant le développement, vous pouvez gérer les problèmes CORS sur le frontend.
Exemple : Utiliser un proxy dans React
Lorsque vous utilisez React, vous pouvez configurer un proxy dans votre package.json pour rediriger les requêtes API vers le serveur backend, en contournant les problèmes CORS.
{ "name": "your-app", "version": "1.0.0", "proxy": "http://localhost:5000" }
La gestion des problèmes CORS est une partie essentielle du développement. En comprenant les mécanismes CORS et en mettant en œuvre les meilleures pratiques décrites dans ce guide, vous pouvez garantir que vos applications Web restent sécurisées tout en fonctionnant correctement dans différents domaines. Que vous configuriez le serveur, installiez un proxy ou utilisiez des services tiers, ces stratégies vous aideront à gérer CORS efficacement.
N'oubliez pas que même si des solutions rapides peuvent être utiles pour le développement et les tests, une configuration appropriée côté serveur est le moyen le plus fiable de gérer CORS dans les environnements de production.
Pour plus d'informations et pour commencer à utiliser Dualite, visitez notre site officiel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!