Налаштування CORS політики для API 1С-Bitrix
CORS (Cross-Origin Resource Sharing) — механізм безпеки браузера, який обмежує cross-origin HTTP запити. При побудові API для 1С-Bitrix, доступних з різних доменів або поддоменів, правильне налаштування CORS є необхідним.
Основи CORS
Браузер відправляє заголовок Origin з кожним запитом. Сервер відповідає заголовком Access-Control-Allow-Origin, вказуючи, які origins можуть доступати ресурс. Без відповідних заголовків браузер блокує відповідь.
Реалізація у Bitrix
Додайте CORS заголовки до відповідей API:
header("Access-Control-Allow-Origin: https://example.com");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 86400");
Для preflight OPTIONS запитів, поверніть 200 з CORS заголовками перед обробкою фактичного запиту.
Стратегії налаштування
Один домен: Дозволяє тільки специфічний домен.
Wildcard: Дозволяє усі origins (не рекомендується для чутливих API):
Access-Control-Allow-Origin: *
Динамічний: Перевірте origin проти whitelist під час виконання.
Креденціали та безпека
Встановіть Access-Control-Allow-Credentials: true для дозволу cookies/auth заголовків. Уникайте wildcard з креденціалами — дозволені тільки специфічні origins.
Поширені проблеми
- Preflight не виходить: Відсутній обробник OPTIONS — реалізуйте для повернення CORS заголовків.
- Креденціали заблоковані: Креденціали потребують явного origin (не wildcard).
- Проблеми кеширования: CORS заголовки кешуються; очистіть кеш при зміні конфігурації.
Найкращі практики
- Дозволяйте тільки необхідні origins.
- Використовуйте специфічні методи (GET, POST) замість усіх методів.
- Обмежте дозволені заголовки до того, що потрібне.
- Використовуйте HTTPS для запитів з креденціалами.
- Встановіть відповідний max-age, щоб зменшити preflight запити.
Правильне налаштування CORS балансує безпеку та функціональність. Занадто обмежувальне порушує інтеграції; занадто дозволяюче створює ризики безпеки.







