Последствия для безопасности многопоточного JavaScript - PullRequest
3 голосов
/ 02 сентября 2008

Прочитав этот вопрос о многопоточном javascript, мне стало интересно, будут ли какие-либо последствия для безопасности, позволяющие javascript порождать потоки с множеством элементов. Например, существует ли риск того, что вредоносный скрипт будет неоднократно создавать поток за потоком в попытке перегрузить операционную систему или интерпретатор и вызвать вход в «неопределенную область поведения», или это в значительной степени не проблема? Любые другие способы, которыми атака могла бы использовать гипотетическую реализацию javascript, которая поддерживает потоки, к которым реализация без многопоточности была бы невосприимчива?

Обновление: Обратите внимание, что блокировка браузера - это не то же самое, что создание эксплойта с неопределенным поведением.

Ответы [ 4 ]

2 голосов
/ 27 ноября 2008

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

Темы отсутствуют в javascript, потому что "Threads Suck" - узнайте больше от дизайнера языка (http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html)

1 голос
/ 02 сентября 2008

Ну, вы уже можете заблокировать браузер и серьезно замедлить работу системы с JS с плохим поведением. Просветленные браузеры реализовали проверки для такого рода вещей, и остановят его, прежде чем он выйдет из-под контроля.

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


Возможно, вы могли бы тогда объяснить, что вы подразумеваете под "неопределенным поведением"? Интерпретатор, который позволял бы ненадежному сценарию напрямую контролировать количество выполняемых собственных потоков ОС, был бы невероятно наивным - я не знаю, как Gears работает, но поскольку API сосредоточенный вокруг Worker с за WorkerPool с, я был бы очень удивлен, если бы они не ограничивали общее количество используемых собственных потоков некоторым очень низким числом.

0 голосов
/ 02 сентября 2008

Опять же, нам нужно провести различие между 1) многопоточной поддержкой в ​​языке (что, я думаю, серьезно не обсуждается как нечто, что произойдет) и 2) использованием нескольких потоков в движке / интерпретаторе JavaScript в браузер.

Что касается # 2, я не понимаю, как это действительно может добавить какие-либо возможные проблемы безопасности для механизма / интерпретатора, если в реализации нет недостатков.

0 голосов
/ 02 сентября 2008

Что ж, я думаю, что единственным важным примером многопоточного javascript является Google Chrome (БУДУТ ВЫПУСТИТЬ ЭТО УЖЕ JEEZ), и, если я понимаю, javascript будет выполнять только один процесс на каждую вкладку, поэтому, если он не начал создавать вкладки (всплывающие окна) Я бы предположил, что это будет нулевая проблема, но я думаю, что Google в любом случае имеет это в тайне, они запускают весь javascript в песочнице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...