В настоящее время я разрабатываю блестящие приложения, которые направлены на преподавание R с помощью интерактивных курсов.С этой целью я уже работал с вопросами с несколькими вариантами ответов и вопросами с произвольным текстом.Теперь я хочу заняться вопросами, когда пользователи приложения (студенты) могут ввести свой собственный R-код в текстовое поле и запустить его.
Моя текущая реализация в основном использует eval
внутри наблюдателя.
## evaluate the users expression and store the results.
observeEvent(input$evluate, {
reactives$result <- eval(parse(text = input$console_in))
})
Эта реализация имеет серьезные недостатки, когда речь заходит о безопасности, поскольку пользователи могут вставлять и запускать произвольные коды на сервере.
- Как лучше всего сделать консоль более безопасной?
- Как указать рабочий каталог во время оценки?
В какой-то момент планируется выпустить версию этого программного обеспечения с открытым исходным кодом.Поэтому я бы предпочел решение, не зависящее от платформы и не усложняющее развертывание приложения.