Удалить дополнительную функцию из оболочки Rhino

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

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

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

1 ответ

Решение

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

runCommand = null;
delete runCommand;

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

Object.getOwnPropertyNames(this);
Другие вопросы по тегам