Я хочу сделать, чтобы разработчики записали некоторые пользовательские приложения для сайта в JavaScript, но я хочу поиграть в песочнице его так, они не могут сделать ничего непослушного как перенаправление пользователь, установить дисплей тела ни на один и т.д. и т.д. У меня есть пространство имен в JavaScript, где все функции, они когда-либо должны будут существовать там, таким образом, я думал для создания песочницы, будут вопросом:
with(Namespace) {
//App code goes here where they can only access Namespace.*
}
То, как это легко, должно обойти это и что могут быть сделаны другие методы? Не должны модерировать каждое отправленное приложение.
Чтобы принудительно использовать песочницу, вам нужно будет проверить код перед его выполнением, зафиксировать любой незаконный код и, если он будет обнаружен, каким-то образом предотвратить его запуск. Очень утомительно и долгое время подвержен ошибкам.
Facebook сделал это, по крайней мере, на своей ранней платформе, мне, как разработчику, это определенно не понравилось. Они ограничили собственные методы, которые можно было использовать, и предоставили ограниченные оболочки для некоторых из них.
Что ж, варианты кода песочницы на данный момент следующие:
Оба позволяют создать безопасную среду , где доступ к глобальному объекту и DOM ограничен.
Основная цель этих проектов - позволить вам безопасно встраивать виджеты и любой веб-контент от третьих лиц.
Первое, что приходит на ум, это eval
. Они могут использовать его для выполнения пользовательского кода вне песочницы обертки. Будет очень трудно остановить решительного разработчика, если он попытается завернуть код.
Ссылка на использование eval.