Назад к блогу
Платформа

Целостность API браузера между realm

Поймите, какому realm принадлежит API браузера и почему рефлексия является ограниченным наблюдением совместимости, а не сигналом идентичности.

BotBrowser Team

Документация

Нужна структурированная документация по теме Платформа?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

BotBrowser может повторить разрешённый сценарий API Window, Worker и iframe в объявленном управляемом контексте и сравнить видимые результаты. Он не делает API realm одинаковыми, не предоставляет междоменный доступ и не подтверждает приватность в продакшене; приложение отвечает за владельца, политику origin, доступность и минимизацию данных.

Владение API определяется realm

WHATWG описывает realm как среду выполнения со своим глобальным объектом и встроенными объектами. Поэтому верхнеуровневый Window, выделенный Worker и документ iframe владеют разными объектами API. Значение вроде Array или fetch нужно понимать в realm, который его предоставляет, а не как универсальный объект браузера.

Модель выполнения JavaScript в MDN также разделяет контексты выполнения, задачи и агенты. У Worker нет DOM документа, а у iframe есть собственный документ и контекст политик. Операция, доступная в одном realm, может отсутствовать или быть ограничена в другом. Полезный контракт называет владельца, требуемую возможность и запасной путь.

Сообщения сохраняют явные границы

Window и iframe могут использовать postMessage, а Worker обменивается сообщениями со своим владельцем. Structured clone создаёт значения, принадлежащие получателю, и не сохраняет идентичность объекта отправителя. Transferable-объекты, например ArrayBuffer, передают владение, после чего отправитель не должен использовать исходный ресурс.

Для каждого сообщения задайте версию, операцию, ограниченную нагрузку и ожидаемый ответ. До использования данных проверяйте event.origin и схему. Проверка origin определяет веб-источник, но не является бизнес-авторизацией. После навигации iframe снова проверьте origin и протокол перед принятием ответа.

Рефлексия имеет ограниченный смысл

Рефлексия может показать, доступно ли свойство API или имеет ли значение вызываемую форму в этом realm. Она не доказывает полноту реализации, одинаковое поведение других realm или конкретную идентичность браузера, устройства либо человека. Конструкторы, имена свойств и тексты исключений меняются между версиями и политиками.

Используйте рефлексию только для нужной операции, затем выполните поддерживаемый путь на синтетических данных. Наличие свойства не доказывает успешность разрешений, активации пользователя, сети, рендеринга или доступности. Записывайте объявленный контекст и видимый результат, а не ненужный перечень глобального объекта.

Доступный и приватный запасной путь

Если возможность Worker или iframe недоступна, покажите понятный статус, сохраните фокус клавиатуры и предложите безопасную локальную или серверную альтернативу. Тайм-аут или отклонённое сообщение должны иметь видимое восстановление и ограниченные повторы. Доступность является контрактом приложения, а не классификацией браузера.

Передавайте между realm только минимальную необходимую запись. Не копируйте состояние страницы, записи аккаунта, токены или диагностические перечни. После проверки удаляйте синтетическую диагностику и документируйте срок хранения. Метка realm или результат рефлексии не должны становиться скрытым аналитическим измерением или постоянным идентификатором.

Контрольный список целостности API

  • Назовите владеющий realm: Window, Worker или документ iframe.
  • Укажите требуемую операцию API и поддерживаемый запасной путь.
  • Определите версионированную схему, проверку origin, тайм-аут и владельца очистки.
  • Считайте клонированные значения собственностью получателя, а переданные ресурсы перемещёнными.
  • Тестируйте синтетические данные, видимое восстановление, клавиатуру и минимальное хранение.
  • Записывайте контекст и результат, не делая выводов об идентичности или универсальном равенстве.

Возможности и ограничения BotBrowser

Управляемые контексты BotBrowser могут повторить этот разрешённый API-сценарий с объявленным профилем и сравнить видимые результаты изолированных контекстов. Они не делают API Window, Worker и iframe одинаковыми, не дают междоменный доступ, не аутентифицируют сообщения и не превращают рефлексию в доказательство приватности, анонимности, идентичности устройства или производственной безопасности.

Источники

Связанные материалы: согласованность браузера между realm и приватность браузера между поверхностями.

Владение API Window, Worker и iframe с явными границами сообщений.

#API Браузера#Window#Worker#Iframe#Приватность

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.