Целостность 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 и приватность браузера между поверхностями.
- WHATWG HTML: Realms
- WHATWG HTML: Web messaging
- MDN: JavaScript execution model
- BotBrowser advanced features
Похожие статьи
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.