CORS (Cross-Origin Resource Sharing) — механизм HTTP-заголовков, с помощью которого сервер разрешает браузеру доступ к ответам из другого origin. Для Joomla это важно при запросах из внешнего веб-приложения или загрузке отдельных ресурсов.
Что такое origin и preflight
Origin определяется схемой, именем узла и портом. Два поддомена или HTTP и HTTPS могут иметь разные origin. Для некоторых запросов браузер сначала отправляет предварительный OPTIONS-запрос, чтобы проверить допустимые метод и заголовки.
Если правила не подходят, браузер ограничивает доступ JavaScript к ответу. При этом сервер мог уже получить запрос, поэтому CORS не заменяет авторизацию и защиту от CSRF. Серверные клиенты не обязаны соблюдать браузерные ограничения CORS.
Проверка в Joomla
При интеграции Joomla проверяют запрос из конкретного разрешённого приложения, preflight и итоговый ответ. Заголовки могут формировать приложение, веб-сервер или прокси. Противоречащие дубли заголовков способны нарушить доступ.
Для запросов с учётными данными нельзя просто сочетать разрешение любого origin через звёздочку с разрешением credentials. Список источников должен соответствовать нужной интеграции Joomla. Ошибку CORS диагностируют отдельно от неверного адреса и ответа сервера с ошибкой.
Вывод
CORS управляет браузерным доступом между origin. Права пользователя, безопасная обработка запроса и проверка сервера остаются самостоятельными задачами.