Origin API появляется в Edge 145 — Нативный объект Origin приходит в браузеры
Что произошло
- Microsoft Edge 145 поставляет Origin API — нативный, структурированный объект Origin, который позволяет веб-коду парсить, сериализовать и сравнивать источники вместо того, чтобы полагаться на хрупкие ASCII-строки. (learn.microsoft.com)
Почему это важно для разработчиков полного стека
- Более безопасные сравнения источников: многие ошибки безопасности и логические ошибки возникают из-за сравнения сериализованных строк источников (или парсинга
location.origin), особенно в отношении непрозрачных источников (песочницы, data URL и т. д.). Origin API предоставляет каноническое представление источника браузера и предлагает вспомогательные функции для сравнения, чтобы вы могли надежно тестировать отношения одного источника / одного сайта без хрупкой обработки строк. (learn.microsoft.com) - Меньше крайних случаев для сценариев с iframe и песочницами: непрозрачные источники ведут себя особым образом (один источник только с собой). Origin API позволяет вам напрямую рассуждать об этих семантиках, вместо того чтобы изобретать собственные эвристики для строк. (learn.microsoft.com)
- Упрощенная координация между сервером и клиентом: логика сервера, которая в настоящее время парсит источники из заголовков, параметров запроса или
document.referrer, может быть упрощена (или, по крайней мере, проверена) по сравнению с тем же каноническим представлением, которое использует браузер, что снижает несоответствия, которые приводят к проблемам с аутентификацией/сессией и ошибкам CSRF/CORS. (learn.microsoft.com)
Что появилось (коротко)
- Браузер предоставляет объект Origin первого класса, который поддерживает парсинг/сериализацию и надежные сравнения источников/сайтов; браузеры перенесли эту функцию в стабильные каналы, и функция отражена в спецификации HTML/тестировании. (learn.microsoft.com)
Немедленный контрольный список — практические шаги для команд (высокий приоритет)
- Аудит сравнений источников и проверок аутентификации (1–2 дня)
- Поиск в вашем коде любой логики, которая сравнивает источники с помощью равенства строк (например,
a.origin === b.origin, парсинг имен хостов с помощью регулярных выражений, ручные проверки подстрок). Рассматривайте эти места как рискованные и добавьте тесты или флаги функций для их модернизации.
- Поиск в вашем коде любой логики, которая сравнивает источники с помощью равенства строк (например,
- Обнаружение функций и прогрессивное улучшение (минуты)
- Используйте обнаружение функций (
if (typeof Origin !== 'undefined')), чтобы использовать нативный API, где это возможно, и сохраняйте текущие резервные варианты для старых браузеров. - Пример шаблона (концептуально, встроенно):
- Если
Originсуществует:const o = Origin.from(someValue); o.isSameOrigin(otherOrigin); - Иначе: продолжайте использовать хорошо протестированные, централизованные вспомогательные функции, которые инкапсулируют вашу логику на основе строк.
- Если
- Используйте обнаружение функций (
- Обновите серверную валидацию и логирование (несколько часов)
- Где серверы проверяют заголовки источников (CORS, привязка токенов, проверка вебхуков), логируйте как полученный сериализованный источник, так и канонический источник, созданный клиентским кодом во время развертывания. Это поможет выявить несоответствия на ранней стадии.
- Укрепите поведение iframe / песочницы в интеграционных тестах (1–3 дня)
- Добавьте интеграционные тесты для песочниц, data/file URL и перенаправлений, чтобы проверить обработку сессий и SameSite. Origin API делает многие крайние случаи явными; протестируйте их.
- Запланируйте дорожную карту замены (2–4 спринта)
- Рефакторинг критических путей безопасности (проверки CSRF, привязка сессий, платежные потоки) для предпочтения канонических сравнений Origin, где это возможно. Начните с низкорисковых сервисов и продвигайтесь вперед.
Заметки о совместимости и развертывании
- Origin API появляется в стабильных каналах на основе Chromium (Edge 145 / активность развертывания Chromium), и связанная работа с движками присутствует в других браузерах; развертывания различаются по браузерам и платформам — продолжайте использовать обнаружение функций и поддерживайте резервные варианты во время перехода. (learn.microsoft.com)
- Не предполагайте универсальную доступность пока — рассматривайте API как прогрессивное улучшение и защищайте критические потоки с помощью серверной валидации, пока вы не измерите принятие клиентом.
Риски и подводные камни
- Не заменяйте проверки авторизации на стороне сервера только потому, что клиент сообщает о источнике — Origin API помогает клиентам делать меньше ошибок, но входные данные, контролируемые злоумышленниками, все равно должны проверяться на стороне сервера.
- Следите за сторонними фреймами и навигациями между источниками: наличие объекта
Originне изменяет основную модель безопасности; он только делает модель более простой и безопасной для инспекции из скрипта.
Итог
- Origin API — это тонкое, высокоэффективное улучшение веб-платформы: оно снижает классы ошибок источника/парсинга, которые исторически вызывали проблемы с безопасностью и управлением сессиями. Начните с аудита сравнений источников, добавьте обнаружение функций и постепенно мигрируйте критические проверки на использование канонических сравнений, как только принятие достигнет вашей пользовательской базы. (learn.microsoft.com)
Источник:
Источник
Читать дальше
Svelte 5.52.0 добавляет поддержку TrustedHTML для {@html}, обеспечивая более безопасную интеграцию Trusted Types
21 февраля 2026 г.Svelte 5.52.0 (18 февраля 2026 г.) добавляет поддержку TrustedHTML для выражений {@html}, чтобы приложения могли взаимодействовать с браузерными Trusted Types без приведения к строке — важно для защиты от XSS в SSR и при рендеринге на клиенте.
Next.js 16 делает Turbopack стабильным и дефолтным для разработки и сборки
20 февраля 2026 г.Next.js 16 переводит Turbopack в стабильную/дефолтную настройку, поднимает минимальную версию Node.js и внедряет примитивы кэширования, ориентированные на продакшн — что должны изменить команды full‑stack прямо сейчас.
Vite 8.0.0‑beta.14 добавляет поддержку .wasm?init на стороне сервера (WASM SSR) и обновляет Rolldown до 1.0.0‑rc.4
19 февраля 2026 г.Бета‑версия Vite от 12 февраля 2026 года вводит поддержку SSR для предварительно инициализированных модулей WebAssembly и обновляет интеграцию Rolldown до 1.0.0‑rc.4 — практическое изменение, которое снижает нагрузку на гидратацию на клиенте и улучшает стабильность инструментов для серверных рендеров с интенсивным использованием Wasm.