Skip to content

[Bug] CORS: дефолт allowed_origins=* вместе с allow_credentials=true #335

Closed

Description

@Ibochkarev

Описание проблемы

В Web API дефолт CORS: allowed_origins: ['*'] и allow_credentials: true. При credentials middleware отражает Origin запроса. Headless с дефолтной настройкой фактически доверяет любому origin.

Файлы:

  • core/components/minishop3/config/routes/web.php (~40–43)
  • core/components/minishop3/src/Middleware/CorsMiddleware.php

Шаги воспроизведения

  1. Оставить ms3_cors_allowed_origins по умолчанию (* или пусто → *).
  2. С другого origin вызвать Web API с credentials.
  3. Проверить Access-Control-Allow-Origin в ответе.

Ожидаемое поведение

Безопасный дефолт:

  • credentials выключены при *; или
  • * запрещён при allow_credentials=true; или
  • дефолт origins — пустой список / same-origin, * только явно в setting.

Спецификация CORS: * несовместим с credentials; reflect-any-Origin — отдельный риск.

Фактическое поведение

Дефолт в роуте включает оба флага. Лексикон setting допускает * («Use "*" to allow all»).

Критерии приёмки

  • Невозможна комбинация * + credentials в runtime (fail-closed или нормализация).
  • Дефолт setting безопасен; лексикон/доки обновлены (ru + en).
  • Allowlist доменов остаётся рабочим путём для headless.
  • Assertion на нормализацию конфига в тестах.

Дополнительный контекст

Не ломать сайты с уже заданным списком origins. Меняем дефолт и валидацию конфига.

Предпочтительно одна функция normalizeCorsConfig() — убрать ветвления reflect vs * из нескольких мест.

Activity

  1. added
    priority: highВажно исправить в ближайшее время
    bugSomething isn't working
    tech-debtMaintainability / refactor / architecture debt
    on Jul 15, 2026
  2. added a commit that references this issue on Aug 1, 2026
    cbf8b30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority: highВажно исправить в ближайшее времяtech-debtMaintainability / refactor / architecture debt

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions