Я использую javax.scripting
, чтобы добавить поддержку запуска произвольных загруженных пользователем JavaScript-кодов на стороне сервера. Очевидно, я хочу защитить эти сценарии!
Rhino сам по себе имеет структуру для защиты сценариев во время выполнения. В документации для javax.scripting
, однако, не упоминаются безопасность, разрешения или ограничивающие классы, доступные для скрипта. Так это просто огромная дыра в javax.scripting
API, что он не предлагает структуру для защиты выполняемых скриптов?
Я не хочу использовать Rhino напрямую, потому что я изначально пытался это сделать, но у меня возникли проблемы с предоставлением экземпляров Java работающему сценарию. Фреймворк javax.scripting
(который использует Rhino под капотом) сделал это тривиальным, а также упростил выполнение скриптов на многопоточном сервере.
Я хотел бы внести классы Java в белый список, к которым можно получить доступ/создать экземпляр в работающем скрипте. Может ли кто-нибудь указать мне пример или документацию о том, как этого добиться?