Know-How
CORS konfigurace — Cross-Origin Resource Sharing
CORS říká prohlížeči, zda JavaScript na jedné doméně smí komunikovat s API na jiné doméně. Špatná konfigurace = nefunkční frontend nebo bezpečnostní díra.
CORS headers
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Konfigurace — Express.js
const cors = require('cors');
const allowed = ['https://app.example.com', 'https://admin.example.com'];
app.use(cors({
origin: (origin, cb) => {
if (!origin || allowed.includes(origin)) cb(null, true);
else cb(new Error('Not allowed'));
},
credentials: true,
}));
// ❌ NIKDY: cors({ origin: '*', credentials: true })
Typické chyby
- Wildcard s credentials — nefunguje
- Reflection origin bez validace
- Null origin povolený
Klíčový takeaway
Whitelistujte konkrétní origins, nikdy wildcard s credentials.