Вопрос

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

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

Как легко обойти это и какие еще методы можно сделать? Предпочел бы не модерировать каждое представленное приложение.

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

Ссылка на сайт к использованию оценки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top