Песочница JavaScript

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

with(Namespace) {
    //App code goes here where they can only access Namespace.*
}

То, как это легко, должно обойти это и что могут быть сделаны другие методы? Не должны модерировать каждое отправленное приложение.

6
задан Louis 7 June 2010 в 03:25
поделиться

3 ответа

Чтобы принудительно использовать песочницу, вам нужно будет проверить код перед его выполнением, зафиксировать любой незаконный код и, если он будет обнаружен, каким-то образом предотвратить его запуск. Очень утомительно и долгое время подвержен ошибкам.

Facebook сделал это, по крайней мере, на своей ранней платформе, мне, как разработчику, это определенно не понравилось. Они ограничили собственные методы, которые можно было использовать, и предоставили ограниченные оболочки для некоторых из них.

1
ответ дан 9 December 2019 в 22:29
поделиться

Что ж, варианты кода песочницы на данный момент следующие:

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

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

8
ответ дан 9 December 2019 в 22:29
поделиться

Первое, что приходит на ум, это eval. Они могут использовать его для выполнения пользовательского кода вне песочницы обертки. Будет очень трудно остановить решительного разработчика, если он попытается завернуть код.

Ссылка на использование eval.

2
ответ дан 9 December 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: