CORS Tester
Test en debug Cross-Origin Resource Sharing (CORS) beleid en API-verzoeken
Wat is CORS? CORS (Cross-Origin Resource Sharing) is een mechanisme dat webbrowsers in staat stelt om cross-origin verzoeken (ander domein, protocol of poort) te doen vanuit scripts die in de browser draaien.
Belangrijke CORS-headers
Access-Control-Allow-Origin
: Specificeert welke origins toegang hebben tot de bronAccess-Control-Allow-Methods
: Specificeert welke HTTP-methoden zijn toegestaanAccess-Control-Allow-Headers
: Specificeert welke HTTP-headers kunnen worden gebruiktAccess-Control-Allow-Credentials
: Specificeert of referenties (cookies, HTTP-authenticatie) moeten worden opgenomen
๐ก CORS Oplossingen
Server-side oplossingen
1. Express.js (Node.js):
const cors = require('cors'); app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST'], credentials: true }));
2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com") @RestController public class ApiController { ... }
Client-side oplossingen
1. Gebruik van een proxyserver:
// package.json (React) "proxy": "http://localhost:3001"
2. JSONP (alleen GET):
// Beperkte maar eenvoudige oplossing fetch('api?callback=handleResponse')
๐ง CORS-configuratie per omgeving
Next.js
// next.config.js module.exports = { async headers() { return [ { source: '/api/:path*', headers: [ { key: 'Access-Control-Allow-Origin', value: '*' } ] } ] } }
Nginx
location /api { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; }
Apache
# .htaccess Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header always set Access-Control-Allow-Headers "Content-Type, Authorization"
CORS-configuratie per omgeving
Testscenario's
- โข Eenvoudig verzoek: Test basis CORS-gedrag met GET-verzoeken
- โข Preflight-verzoek: Test preflight-verzoeken met PUT/DELETE-methoden
- โข Aangepaste headers: Test verzoeken met Authorization-header
- โข Referenties: Test verzoeken met cookies
- โข Foutafhandeling: Test foutscenario's
Beveiligingsoverwegingen
- โข Wees voorzichtig met het gebruik van wildcards (*) vanwege beveiligingsrisico's
- โข Principe van minimale privileges: Sta alleen noodzakelijke origins en methoden toe
- โข Referentiebeperkingen: Sta alleen specifieke origins toe bij het opnemen van referenties
- โข Regelmatige controle: Controleer en update CORS-beleid periodiek
CORS Debugging Tips
Browser Ontwikkelaarstools
- โข Controleer OPTIONS-verzoeken in het tabblad Netwerk
- โข Zoek naar CORS-foutmeldingen in de Console
- โข Verifieer CORS-headers in Antwoordheaders
Handige tools
- โข CORS Tester (deze tool)
- โข Postman (voor API-testen)
- โข curl-commando (voor directe servertesten)