Описание http_origin
— Filter
Хук http_origin позволяет изменять значение заголовка Origin, который используется для управления CORS (Cross-Origin Resource Sharing) в WordPress. Он срабатывает при обработке запросов, когда сервер должен определить, какие источники могут взаимодействовать с его ресурсами
Примеры использования
Пример разрешения определенного домена для CORS:
add_filter('http_origin', function($origin) {
if ($origin === 'https://allowed-origin.com') {
return $origin;
}
return null;
});
В этом примере мы разрешаем запросы только с домена ‘https://allowed-origin.com’
Пример добавления нескольких разрешенных доменов:
add_filter('http_origin', function($origin) {
$allowed_origins = ['https://example1.com', 'https://example2.com'];
if (in_array($origin, $allowed_origins)) {
return $origin;
}
return null;
});
Здесь мы разрешаем запросы только с доменов ‘https://example1.com’ и ‘https://example2.com’
Пример возвращения всех доменов для локальной разработки:
add_filter('http_origin', function($origin) {
if (strpos($origin, 'localhost') !== false) {
return $origin;
}
return null;
});
В этом примере мы разрешаем запросы с любых локальных доменов, содержащих ‘localhost’
— Лучшие практики
– Использование
Используйте этот хук, когда нужно настроить управление CORS для вашего сайта, чтобы разрешить или ограничить доступ из разных источников
– Производительность
Хук не должен значительно влиять на производительность, так как изменения касаются только обработки заголовков запроса
– Предупреждения
Будьте осторожны при разрешении доменов, чтобы не создать уязвимость для CSRF атак
Альтернативы
Тип: filter
Этот хук позволяет обрабатывать ошибки аутентификации в REST API, включая CORS
Используйте его, если нужно управлять доступом к REST API, помимо CORS