Ответ 1
Вам, вероятно, понадобится комбинация ограничительного загрузчика классов и полное понимание Архитектуры безопасности Java. Вероятно, вы запустите свою JVM с очень строгим указателем SecurityManager.
Как работает песочница движка google? Что мне нужно сделать, чтобы создать мою собственную песочницу (чтобы безопасно позволить моим клиентам запускать свои приложения на моем движке, не давая им возможность форматировать мой диск)? Это просто магия загрузчика классов, манипулирование байтами или что-то еще?
Вам, вероятно, понадобится комбинация ограничительного загрузчика классов и полное понимание Архитектуры безопасности Java. Вероятно, вы запустите свою JVM с очень строгим указателем SecurityManager.
В случае Java я думаю, что в основном это делается путем ограничения доступных библиотек. Поскольку Java не имеет концепции указателя, и вы не можете загружать изначально скомпилированный код (только байт-код JVM), вы не можете вырваться из песочницы. Добавьте некоторое сжатое планирование процесса, и все готово!
Думаю, самая сложная задача - собрать библиотеки, чтобы они были полезны, оставаясь в безопасности.
В случае с Python им пришлось модифицировать сама виртуальную машину, потому что она не была разработана с учетом безопасности. К счастью, у них есть сам Гвидо, чтобы это сделать.
чтобы безопасно разрешать моим клиентам запускать свои приложения на моем движке, не предоставляя им возможность форматировать мой диск
Это может быть легко достигнуто с помощью диспетчера безопасности Java. Обратитесь к этому для примера.