То, о чем знаю я:
- через конструкторы можно получить доверенные объекты Function, Boolean, Number и так далее
- доступ к глобальному объекту window можно получить через (function () {return this}).call(null)
- нельзя изменить значение document, origin, location, domain у window - это либо невозможно, либо вызовет перезагрузку страницы
- проверить WebWorker и document.createElement('iframe') возможно, получив доступ к Blob и URL.createObjectURL.
- контексты исполнения Web Worker, Shared Worker - безопасны, в них нельзя внедриться. Это значит, что все содержимое WorkerNavigator является доверенным.
- можно проверить Web Worker при помощи CSP. sha* алгоритм является криптостойким, это значит, что за разумное время найти код, который решает нужную задачу и при этом имеет корректный sha не является возможным. Если код загружается и отвечает ожидаемым способом, это значит, что сам воркер загрузился (при этом мы все еще не можем считать сам глобальный Worker доверенным)