CORS - Cross-Origin Resource Sharing para Node.js y Express

¿Qué es Cross-Origin Resource Sharing (CORS)?

CORS, por sus siglas en inglés, es un mecanismo que los navegadores usan para permitir o restringir solicitudes realizadas desde un dominio (origen) diferente al de la página que se está ejecutando. En pocas palabras, es una política de seguridad que permite o prohíbe que un sitio web cargue recursos (como datos o archivos) de otro dominio.

¿Para qué sirve?

Su propósito principal es mejorar la seguridad de las aplicaciones web al controlar qué sitios externos pueden interactuar con tu servidor. Por ejemplo:

  • Evita accesos no autorizados: Protege tu servidor de solicitudes maliciosas provenientes de otros dominios.
  • Habilita integraciones seguras: Permite a aplicaciones (como servicios API) compartir datos entre diferentes dominios, siempre que las configuraciones de seguridad lo permitan.

Para instalar CORS (Cross-Origin Resource Sharing), necesitas instalar un paquete que permita gestionar las políticas de intercambio entre dominios en tu servidor. Si estás usando Node.js y Express, puedes seguir estos pasos: 

Instala el paquete: Abre tu terminal y ejecuta el siguiente comando:

npm install cors 

Importa y configura CORS en tu aplicación: En tu archivo principal de servidor (por ejemplo, app.js o server.js), añade el siguiente código:

const express = require('express');
const cors = require('cors');

const app = express();

// Configuración básica para permitir todas las solicitudes
app.use(cors());

// Opcional: puedes configurar opciones específicas
const corsOptions = {
    origin: 'http://example.com', // Reemplaza con el dominio permitido
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
};
app.use(cors(corsOptions));

app.get('/', (req, res) => {
    res.json({ message: 'CORS configurado correctamente' });
});

app.listen(3000, () => {
    console.log('Servidor corriendo en el puerto 3000');
}); 

Prueba tu configuración: Ejecuta tu servidor con node app.js y realiza solicitudes desde otro origen para asegurarte de que las políticas de CORS están funcionando. 



Como instalar CORS en tu proyecto de Node.js

 Para instalar CORS en tu proyecto de Node.js, debes seguir estos pasos:

Asegúrate de tener Node.js y npm instalados. Si aún no los tienes, puedes descargarlos e instalarlos desde https://nodejs.org/es

Abre la terminal en tu proyecto.

Ejecuta el siguiente comando para instalar CORS:

npm install cors 

Esto descargará e instalará el paquete cors en tu proyecto. 

Configura CORS en tu servidor. Una vez instalado, debes importarlo y usarlo en tu servidor Express. Por ejemplo: 

const express = require("express");
const cors = require("cors");

const app = express();

// Habilitar CORS para todas las solicitudes
app.use(cors());

// Opcional: Configuración personalizada de CORS
app.use(cors({
    origin: "http://tu-dominio.com", // Permitir solo este dominio
    methods: ["GET", "POST"],       // Métodos HTTP permitidos
    allowedHeaders: ["Content-Type", "Authorization"] // Encabezados permitidos
}));

app.get("/", (req, res) => {
    res.send("¡CORS está funcionando!");
});

app.listen(3000, () => {
    console.log("Servidor ejecutándose en http://localhost:3000");
});

Prueba que CORS esté configurado correctamente. Ahora puedes probar que tu servidor acepta solicitudes desde diferentes dominios (como desde un frontend hospedado en otro lugar). 

 

¿En qué se fundamenta CORS?

CORS se basa en los encabezados HTTP (como Access-Control-Allow-Origin) y especifica cómo los navegadores y servidores deben comunicarse para compartir recursos de manera segura entre diferentes dominios. Es un estándar que forma parte del protocolo HTTP y fue desarrollado por el World Wide Web Consortium (W3C).

  • Access-Control-Allow-Origin: Define qué dominios están permitidos.
  • Access-Control-Allow-Methods: Especifica los métodos HTTP permitidos (GET, POST, etc.).

Este mecanismo funciona bajo la arquitectura del modelo de seguridad "same-origin policy" (política del mismo origen), que por defecto restringe el acceso entre dominios.

 

¿Sobre qué servidores funciona CORS?

CORS puede implementarse en cualquier servidor que utilice el protocolo HTTP o HTTPS, independientemente del lenguaje de programación o la tecnología subyacente. Por ejemplo:

  •  Servidores basados en Node.js, Python (Flask, Django), PHP, Ruby on Rails, etc.
  • Plataformas en la nube como AWS, Google Cloud y Azure.
  • Incluso se aplica a servidores de aplicaciones y entornos corporativos.

¿Es un estándar internacional?

Sí, CORS es un estándar internacional establecido por el W3C y es compatible con todos los navegadores modernos. Esto asegura que las aplicaciones web puedan interactuar entre dominios de forma segura y coherente en cualquier parte del mundo.

 

 

 

 

 

 

 

 

 

 

Destacado

Bootloader Avanzado en Ensamblador

Bootloader Avanzado en Ensamblador Características del Bootloader Se carga en la dirección 0x7C00 (BIOS). ...