Skratka CORS znamená “Cross-Origin Resource Sharing”, čo označuje mechanizmus, ktorý umožňuje bezpečný prístup k zdrojom na inej doméne, než je doména, z ktorej bola požiadavka odoslaná.
Základné informácie o CORS:
•Účel: CORS je navrhnutý tak, aby rozšíril bezpečnostný model Same-Origin Policy, ktorý obmedzuje webové aplikácie v interakcii so zdrojmi na iných doménach.
•Rieši problém: Ak webová aplikácia potrebuje komunikovať so serverom na inej doméne (napr. API), CORS umožňuje určiť, ktoré domény majú povolený prístup.
Ako funguje CORS:
1.Prehliadač odošle predbežnú (preflight) požiadavku: Prehliadač najskôr skontroluje, či má požiadavka povolenie na prístup k zdrojom na inej doméne.
2.Server odpovie: Server odpovie so špecifikáciou, či je požiadavka povolená, pomocou hlavičky Access-Control-Allow-Origin.
3.Prístup je schválený/odmietnutý: Ak server umožňuje prístup, prehliadač vykoná požiadavku; inak požiadavka zlyhá.
Dôležité hlavičky CORS:
•Access-Control-Allow-Origin: Špecifikuje, ktoré domény môžu pristupovať k zdrojom (napr. * alebo konkrétna doména).
•Access-Control-Allow-Methods: Uvádza povolené HTTP metódy (napr. GET, POST, PUT).
•Access-Control-Allow-Headers: Špecifikuje, ktoré vlastné hlavičky sú povolené.
Príklad CORS konfigurácie na serveri:
V Node.js s použitím Express:
const cors = require(‘cors’);
const app = require(‘express’)();
app.use(cors({
origin: ‘https://example.com’, // Povolená doména
methods: [‘GET’, ‘POST’]
}));
app.listen(3000);
Bežné problémy s CORS:
1.Blokované požiadavky: Ak server nevráti povolené hlavičky, požiadavka zlyhá.
2.Nesprávne nastavenia servera: Server musí byť správne nakonfigurovaný, aby umožnil požiadavky.
CORS je kľúčový mechanizmus na zabezpečenie bezpečnej komunikácie medzi rôznymi doménami na webe!