Задать вопрос
@russlobachev

Пользовательский JS-скриптинг в веб-приложении?

Цель. Я даю пользователю возможность кастомизировать вывод данных в интерфейсе. Но не через экран настроек, а путем написания скрипта. Для этого я предоставляю ему часть своей DOM, отвечающей за вывод. Например, передаю ее как некий корневой объект app в движок скриптования, и через этот app как глобальную переменную пользователь скриптит вывод данных.


По идее, это можно сделать через eval. Но как закрыть пользователю доступ к внешним объектам (window, alert и т.д.) и разрешить работать только в рамках моей DOM?
  • Вопрос задан
  • 3334 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Caja не смотрели?
Ответ написан
RUVATA
@RUVATA
Разработчик, гик, меломан, разгильдяй
Если через eval, средствами JavaScript никак.
Ответ написан
Комментировать
spmbt
@spmbt
Никак. Пользователь может внедрить скрипт (тег Script src), в котором будет доступ к window в Хроме, где специально постарались усложнить доступ контентных скриптов, а в остальных браузерах получить window никогда не было проблемой. (Правда, Вы не уточнили, КЕМ будет написан скрипт. Но, наверное, подразумевается, что пользователем.)

Если же Вы думаете получать данные и исполнять их в виде скрипта через eval(), то, если не считать, что это — плохая идея, такой скрипт нужно запускать в другом домене в фрейме, тогда Вы имеете шанс не получить взломанных пользователей и систему.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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