Построитель и Валидатор CORS-заголовков

Разработчик
Реклама · УДАЛИТЬ?

Источник

Список разрешенных источников через запятую

Разрешенные методы

Разрешенные заголовки

Список разрешенных заголовков запросов через запятую

Параметры

Как долго браузеры кэшируют предварительные результаты (по умолчанию: 86400 = 24 часа)
Заголовки, к которым браузер может получить доступ из ответа

Фрагменты кода сервера

Реклама · УДАЛИТЬ?

Гид

Создатель и валидатор CORS-заголовков

Построитель и Валидатор CORS-заголовков

Создавайте правильные CORS (Cross-Origin Resource Sharing) заголовки с помощью визуального конфигуратора. Установите разрешенные источники, методы, заголовки и учетные данные, а затем получите сгенерированные HTTP-заголовки и готовые фрагменты кода для Express.js, Nginx, Apache, Django, FastAPI, Flask и Go. Проверка в реальном времени обнаруживает распространенные ошибки конфигурации CORS до того, как они попадут в продакшн.

Как использовать

Настройте свою CORS-политику с помощью элементов управления формой: выберите режим источника (wildcard, конкретные источники или отражение), выберите разрешенные HTTP-методы, добавьте разрешенные заголовки и включите учетные данные, если это необходимо. Инструмент мгновенно генерирует правильные заголовки Access-Control-*, показывает предупреждения о распространенных ошибках и предоставляет готовые к копированию фрагменты кода для 7 серверных фреймворков. Используйте раздел объяснения CORS для быстрого повторения того, как работает CORS.

Возможности

  • Визуальный конфигуратор CORS — Установите Access-Control-Allow-Origin (wildcard, конкретные источники или отражение), методы (GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD), пользовательские заголовки, учетные данные, max-age и expose-headers.
  • Генерация заголовков в реальном времени — Мгновенно просматривайте полные CORS-заголовки ответа и предварительные (OPTIONS) заголовки, которые обновляются по мере вашей настройки.
  • 7 фрагментов кода серверных фреймворков — Готовый к копированию код для Express.js, Nginx, Apache (.htaccess), Django (django-cors-headers), FastAPI (CORSMiddleware), Flask (flask-cors) и Go (net/http). Каждый фрагмент динамически генерируется из вашей конфигурации.
  • Проверка конфигурации — Предупреждения, выделенные цветом, обнаруживают распространенные ошибки CORS: wildcard + учетные данные (недействительно), отсутствует заголовок Content-Type при POST, отсутствует метод OPTIONS для предварительной проверки, короткий max-age увеличивает трафик предварительных запросов.
  • Кнопки быстрого добавления заголовков — Кнопки в одно нажатие для распространенных заголовков: Content-Type, Authorization, X-Requested-With, Accept, Origin.
  • Предварительные заголовки — Отдельное отображение предварительных (OPTIONS) заголовков ответа, когда они отличаются от обычных CORS-заголовков.
  • Объяснение CORS — Сворачиваемая справка, охватывающая простые и предварительные запросы, что вызывает предварительный запрос, роль каждого заголовка и почему учетные данные + wildcard недействительны.

Объяснение CORS-заголовков

Access-Control-Allow-Origin: Какие источники могут получить доступ к ресурсу. Wildcard (*) разрешает все, или укажите точные источники.
Access-Control-Allow-Methods: Какие HTTP-методы разрешены для междоменных запросов.
Access-Control-Allow-Headers: Какие заголовки запросов клиент может отправлять.
Access-Control-Allow-Credentials: Следует ли браузеру включать куки/аутентификацию. Нельзя использовать с wildcard-источником.
Access-Control-Max-Age: Как долго (в секундах) браузеры кэшируют результаты предварительных запросов.
Access-Control-Expose-Headers: К каким заголовкам ответа браузер может получить доступ из JavaScript.

Реклама · УДАЛИТЬ?

Что такое CORS и зачем он мне нужен?

CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузера, который контролирует, какие веб-сайты могут отправлять запросы на ваш сервер. По умолчанию браузеры блокируют междоменные запросы (например, ваш фронтенд на app.example.com, вызывающий ваш API на api.example.com). CORS-заголовки сообщают браузеру, какие источники, методы и заголовки разрешены. Без правильной конфигурации CORS ваш API будет работать от сервера к серверу, но не сможет вызываться из браузера — это одна из самых распространенных проблем в веб-разработке.

Почему я не могу использовать wildcard (*) с учетными данными?

Когда Access-Control-Allow-Credentials установлен в true, браузер требует, чтобы сервер указывал точный источник, а не wildcard (*). Это мера безопасности: если бы сервер говорил «любой источник может получить доступ к этому ресурсу с учетными данными (куки, токены аутентификации)», это позволило бы любому веб-сайту отправлять аутентифицированные запросы от имени пользователя. Браузеры применяют это ограничение для предотвращения кражи учетных данных. Вместо wildcard используйте режим «Отразить источник» — сервер считывает заголовок Origin запроса и отражает его обратно, если он находится в списке разрешенных.

Что такое предварительный запрос?

Предварительный запрос — это автоматический запрос OPTIONS, который браузер отправляет перед определенными междоменными запросами, чтобы проверить, разрешены ли они сервером. Предварительный запрос срабатывает, когда: запрос использует методы, отличные от GET/HEAD/POST, включает пользовательские заголовки (например, Authorization) или использует типы Content-Type, отличные от form-data или plain text. Сервер должен ответить на OPTIONS соответствующими CORS-заголовками Access-Control-*. Если предварительный запрос не удался, браузер блокирует фактический запрос. Заголовок Access-Control-Max-Age контролирует, как долго браузеры кэшируют результаты предварительных запросов.

Какой фрагмент кода серверного фреймворка мне использовать?

Выбирайте в зависимости от вашей серверной технологии: Express.js для Node.js API, Nginx для обратного прокси / серверов статических файлов, Apache для традиционного хостинга (.htaccess), Django для проектов Django на Python (используется пакет django-cors-headers), FastAPI для современных API на Python (встроенный CORSMiddleware), Flask для приложений Flask на Python (используется flask-cors) и Go для серверов Go net/http. Каждый фрагмент генерируется на основе вашей точной конфигурации — просто скопируйте и вставьте в свой проект. Для контейнеризованных развертываний вам может потребоваться настроить CORS на уровне обратного прокси (Nginx/Apache), а не на уровне приложения.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?