К обсуждениям

Electron custom protocol: согласование Fetch API и CORS

Редакция VOne Технологии

Защитная диагностика Electron custom protocol: согласование Fetch API и CORS по GHSA-V3J7-R9GQ-3GJW: применимость, изолированный тест, измеримый verdict, критерий остановки и пакет данных для владельца системы.

Короткий ответ и применимость — Electron custom protocol: согласование Fetch API и CORS

Проверяемая задача: проверить, что supportFetchAPI не даёт cross-origin read без corsEnabled policy. Сначала подтвердите фактически загруженный компонент Electron, его runtime digest, затронутый entry point и границу версий «electron >= 42.0.0-alpha.1, fixed 42.0.0; electron >= 41.0.0-alpha.1, fixed 41.4.0; electron >= 40.0.0-alpha.1, fixed 40.9.3; electron >= 0, fixed 39.8.10». Только после inventory выполняется ограниченный regression: Собрать protocol capability matrix и synthetic same/cross-origin requests; handler response заменить recorder Пользовательская боль конкретна: custom scheme может стать доступным Fetch API, но обойти ожидаемую CORS-проверку. Результат оформляется как таблица protocol flags / initiator origin / response exposure / CORS reason / handler calls. GHSA GHSA-V3J7-R9GQ-3GJW — ориентир для проверки, но не доказательство состояния вашей установки, инцидента или эксплуатации.

Граница данных и решения — Electron custom protocol: согласование Fetch API и CORS

Разложите этот путь на источник данных, нормализованное представление, policy verdict и side effect. Специальная инварианта: Cross-origin readable response возможен только когда protocol явно corsEnabled и request проходит CORS verdict. Для каждого перехода укажите владельца решения, ожидаемое состояние и запрещённый результат. NOT_APPLICABLE возможен только при доказанном отсутствии Electron или соответствующей функции. Неизвестная версия, digest либо конфигурация означает UNKNOWN, а не безопасность; номер исправленного релиза не заменяет runtime readback.

Изолированный стенд — Electron custom protocol: согласование Fetch API и CORS

Используйте disposable temp directory, in-memory repository, detached DOM или pure adapter — по типу компонента, но не production. Протокол: Собрать protocol capability matrix и synthetic same/cross-origin requests; handler response заменить recorder Сеть, shell, database, filesystem, browser, message broker, выдача сессии и другие side effects заменяются spies, recorders или счётчиками. Применяйте короткие synthetic labels; реальные токены, IP, аккаунты, конфиги, логи и пользовательские данные запрещены. Перед control сохраните baseline hash и нулевые counters.

Control и один boundary-case — Electron custom protocol: согласование Fetch API и CORS

Benign control доказывает достижимость нужной ветки. Boundary-case меняет ровно один структурный признак и обязан остановиться до состояния «custom scheme может стать доступным Fetch API, но обойти ожидаемую CORS-проверку». Сохраните таблица protocol flags / initiator origin / response exposure / CORS reason / handler calls, reason code, monotonic duration и cleanup state. Проверяемое правило: Cross-origin readable response возможен только когда protocol явно corsEnabled и request проходит CORS verdict. Не увеличивайте размер, глубину или число повторов после первого нарушения; материал не требует эксплуатационного payload, внешней цели или реального секрета.

Как вынести PASS, FAIL и UNKNOWN — Electron custom protocol: согласование Fetch API и CORS

PASS требует подтверждённых component digest и entry point, успешного control, соблюдения инварианты «Cross-origin readable response возможен только когда protocol явно corsEnabled и request проходит CORS verdict», остановки boundary до side effect и доказанного cleanup. FAIL — тот же provenance и наблюдаемый запрещённый call, counter либо state transition. UNKNOWN — нет digest, конфигурации, точки наблюдения, control или восстановления. NOT_APPLICABLE — компонент или функция доказанно отсутствуют. Для воспроизводимости приложите таблица protocol flags / initiator origin / response exposure / CORS reason / handler calls; субъективного «выглядит нормально» недостаточно.

Красная линия и восстановление — Electron custom protocol: согласование Fetch API и CORS

Немедленно остановитесь, если cross-origin body стал readable при corsEnabled=false либо policy и exposure расходятся. Не повторяйте проверку с более сильным вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Любой неожиданный ненулевой counter сети, процессов, файлов, записей, маршрутов, браузерной навигации или сессий блокирует PASS и фиксируется отдельно от parser/policy результата. Production, реальные учётные записи и чужие данные в тест не входят.

Почему это самостоятельный intent — Electron custom protocol: согласование Fetch API и CORS

Соединяет две protocol capabilities в truth table с наблюдаемой exposure, а не только handler reachability. Не общий origin permission: специфическая комбинация registerSchemesAsPrivileged flags для custom protocol. Поэтому механическая замена бренда, ОС или устройства не создаёт ещё один URL. Самостоятельная практическая ценность выражена deliverable «таблица protocol flags / initiator origin / response exposure / CORS reason / handler calls» и инвариантой «Cross-origin readable response возможен только когда protocol явно corsEnabled и request проходит CORS verdict». Если опубликованная страница уже покрывает тот же вопрос, пользовательскую боль и дерево решения, правильное действие — update/merge по отдельному контракту, а не соседняя страница.

Минимальный пакет для владельца — Electron custom protocol: согласование Fetch API и CORS

Передайте владельцу GHSA GHSA-V3J7-R9GQ-3GJW, runtime digest, границу «electron >= 42.0.0-alpha.1, fixed 42.0.0; electron >= 41.0.0-alpha.1, fixed 41.4.0; electron >= 40.0.0-alpha.1, fixed 40.9.3; electron >= 0, fixed 39.8.10», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-08-05, обновлена 2026-08-05; даты подтверждают свежесть проверенного источника, но не популярность запроса и не состояние конкретной системы. После remediation повторите тот же fixture и сравните state transition без изменения тестового масштаба.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии, границы и ссылки сверены по GitHub Advisory Database и прямому upstream-материалу. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.