Nano Hash - криптовалюты, майнинг, программирование

Могут ли работники быть достаточно безопасными для ненадежного кода

У меня есть ненадежный код, отправленный пользователем, и мне нужно выполнить его в изолированной среде в браузере.

Мне сообщили, что Web-Workers не может быть достаточно безопасным для этого, и что лучше использовать изолированный iframe. Эта страница:

https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Web_Workers

также говорит, что рабочие процессы не подходят для ненадежного кода.

Но если я создам работника из BLOB-объекта, его URL-адрес даже будет иметь другой протокол (blob://). Применяется ли в этом случае отдельная политика происхождения к рабочему коду?

Если есть дополнительные причины, почему воркер (по умолчанию) менее ограничен по сравнению с изолированным iframe (доступ к IndexedDB или что-то еще), есть ли возможность как-то настроить воркер, чтобы он был достаточно ограничен, или должен Я все еще использую iframe в песочнице?


Ответы:


1

Применяется ли в этом случае отдельная политика происхождения к рабочему коду?

Нет, из текущего редакторского проекта спецификации File API:

Источник URL-адреса BLOB-объекта должен совпадать с источником эффективного сценария, указанным действующим объектом параметров во время вызова создавшего его метода — либо URL.createObjectURL, либо URL.createFor.


дополнительные причины, по которым воркер (по умолчанию) менее ограничен по сравнению с iframe в песочнице

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


есть ли возможность как-то настроить воркер, чтобы он был достаточно ограничен

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

23.09.2014
  • За время, прошедшее после того, как этот вопрос был задан и на него был дан ответ, WebAssembly стал жизнеспособным вариантом для песочницы стороннего кода. У него нет доступа ни к одному из API браузера. Хотя это должно измениться в какой-то момент, сделав wasm первоклассным гражданином браузера, вариант изолированной программной среды, вероятно, останется для обратной совместимости. 02.06.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..