Вопрос

Что на самом деле делает обёртка Mozilla Firefox для XPCSafeJSObject?

документация MDC выглядит следующим образом:

  

Эта обертка была создана для решения некоторых проблем с XPCNativeWrapper. В частности, некоторые расширения хотят иметь возможность безопасного доступа к объектам, не определенным для реализации контента (и к доступу к базовому объекту JavaScript в XPCNativeWrapper без его строгих гарантий поведения). XPCSJOW действует как буфер между кодом Chrome.

Это мне мало что говорит. В частности, я не могу сказать, как доступ к объектам через XPCSafeObject отличается от прямого доступа к ним.

Изменить . Я понимаю, что в целом назначение оболочек состоит в защите привилегированного кода от непривилегированного кода. Что я не понимаю (и, похоже, не документировано), так это как именно XPCSafeJSObject делает это.

Это просто отбрасывает привилегии перед доступом к свойству?

Это было полезно?

Решение

Целью оболочек в целом является защита Привилегированного кода при взаимодействии с непривилегированным кодом. Автор непривилегированного кода может переопределить объект JavaScript, чтобы сделать что-то вредоносное, например, переопределить метод получения свойства, чтобы выполнить что-то плохое в качестве побочного эффекта. Когда привилегированный код пытается получить доступ к свойству, он выполняет неверный код как привилегированный код. Обертка предотвращает это. Эта страница описывает идею.

XPCSafeJSObject предоставляет оболочку для не реализованных нативно объектов JavaScript (т. е. не окон, документов и т. д., а определенных пользователем объектов).

Изменить. Чтобы узнать, как это реализовано, ознакомьтесь с исходный код (в данный момент он не загружается полностью для меня.) Также ищите XPCSafeJSObject в DXR для других соответствующих исходных файлов.

Другие советы

На самом деле XPCSafeJSObjectWrapper используется для всех объектов содержимого, включая окна и документы (на самом деле это именно то место, где оно обычно требуется). Я считаю, что оно было изобретено главным образом для того, чтобы остановить атаки XSS, автоматически превращающиеся в атаки с повышением привилегий (путем выполнения XSS против сам браузер). По крайней мере, теперь, если обнаружена атака XSS (а люди, к сожалению, будут продолжать искать), это не поставит под угрозу весь браузер. Это естественная разработка XPCNativeWrapper, которая изначально была ручным (и поэтому склонным к случайному неправильному использованию расширениями) способом для браузера защитить себя от атак XSS.

Оболочка просто гарантирует, что любой оцениваемый код будет оценен без прав chrome. Прямой доступ к объектам без этой оболочки позволяет запускать код с правами Chrome, который затем позволяет этому коду делать практически все.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top