Песочница в браузере
Пытаюсь создать в браузере песочницу
Чтобы в пределах этой песочницы можно было выполнить сторонний(недоверенный) скрипт, выдать ему минимально необходимые для работы объекты/методы, и при этом он не смог никак бы влиять на работу основного скрипта, и своих соседей, либо сделать что-то на что ему основной скрипт не дал явного права. В частности, скрипт в песочнице не должен ни при каких условиях получить доступ к глобальному объекту window, либо к иному объекту, окромя специально переданных. Пока получилась такая версия: http://jsfiddle.net/EyZD6/7/ Скрипт для песочницы - в script#sandbox Посмотрите, как можно выбраться из такой песочницы, и как ее можно улучшить, чтобы предотвратить способы выбраться. PS Из-за вмешательства в Function.prototype для механизма песочницы нужно выделить отдельный фрейм, в котором можно запускать неограниченное число недоверенных скриптов. |
А почему нельзя поместить чужой код в отдельный поток? А для операций с документом можно использовать сообщения с главным потоком, где и проверять права.
|
И то верно, так гораздо проще.
Но тогда с этим потоком придется общаться исключительно сообщениями. Интересен все-таки вариант, когда из этого кода можно получить объект модуля, или другие, и использовать их. Что-то вроде модулей vm/contextify для NodeJS |
UP!
Хотелось бы еще мнений, по поводу скрипта, его доработки и обхода |
Часовой пояс GMT +3, время: 01:52. |