Удалить дополнительную функцию из оболочки Rhino
Я хочу использовать Rhino в качестве песочницы для запуска пользовательских скриптов на сервере. Я хочу сделать это из PHP, который больше не имеет привязок Java, поэтому я должен использовать интерфейс командной строки (оболочка Rhino).
К сожалению, оболочка Rhino добавляет в среду некоторые встроенные функции, которые портят символ песочницы, такие как доступ к файлам и runCommand()
что позволяет запускать произвольные команды в системе.
Есть ли способ отключить их?
1 ответ
Решение
Я обнаружил, что могу просто перезаписать их нулем или удалить их:
runCommand = null;
delete runCommand;
Я могу узнать, какие существуют глобальные функции и объекты, получив все свойства Global, которые хранятся в this
:
Object.getOwnPropertyNames(this);