Удалить дополнительную функцию из оболочки Rhino - PullRequest
1 голос
/ 22 июня 2011

Я хочу использовать Rhino в качестве песочницы для запуска пользовательских сценариев на сервере.Я хочу сделать это из PHP, который больше не имеет привязок Java, поэтому я должен использовать интерфейс командной строки (оболочка Rhino).

К сожалению, оболочка Rhino добавляет некоторые встроенные функции в среду, котораяразрушить символ песочницы, например доступ к файлу и runCommand(), что позволяет запускать произвольные команды в системе.

Есть ли способ отключить их?

1 Ответ

0 голосов
/ 22 июня 2011

Я обнаружил, что могу просто перезаписать их нулем или удалить их:

runCommand = null;
delete runCommand;

Я могу узнать, какие глобальные функции и объекты существуют, получая все свойства Глобала, которые хранятся в this:

Object.getOwnPropertyNames(this);
...