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