Co to jest CORS?
CORS (Cross-Origin Resource Sharing) to mechanizm kontrolujacy jakie domeny mogą wykonywać zapytania do Twojego API lub serwera z poziomu przeglądarki. Bledna konfiguracja może blokować legalne zapytania lub otwierać luki bezpieczeństwa.
Podstawowa konfiguracja CORS w .htaccess
# Zezwol na zapytania z konkretnej domeny
Header always set Access-Control-Allow-Origin "https://twojadomena.pl"
# Dozwolone metody HTTP
Header always set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
# Dozwolone naglowki
Header always set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
# Cache preflight request (w sekundach)
Header always set Access-Control-Max-Age "86400"
Obsługa OPTIONS (preflight)
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
CORS dla WordPress REST API
Dodaj do functions.php:
add_action('rest_api_init', function() {
remove_filter('rest_pre_serve_request', 'rest_send_cors_headers');
add_filter('rest_pre_serve_request', function($value) {
header('Access-Control-Allow-Origin: https://twojaaplikacja.pl');
return $value;
});
});
Nigdy nie używaj:
Access-Control-Allow-Origin: * dla endpointow wymagających uwierzytelniania — to poważna luka bezpieczeństwa.