Как работает песочница Google App Engine? - PullRequest
16 голосов
/ 04 августа 2009

Как работает песочница Google App Engine?

Что мне нужно сделать, чтобы создать свою собственную изолированную программную среду (чтобы мои клиенты могли запускать свои приложения на моем движке, не давая им возможности отформатировать мой диск)? Это просто магия загрузчика классов, манипулирование байтами или что-то в этом роде?

Ответы [ 3 ]

9 голосов
/ 04 августа 2009

Вероятно, вам понадобится комбинация ограничительного загрузчика классов и глубокое понимание Java Security Architecture . Вероятно, вы бы запустили свою JVM с очень строгим заданным SecurityManager.

2 голосов
/ 04 августа 2009

В случае с Java, я думаю, это в основном делается путем ограничения доступных библиотек. Поскольку в Java нет концепции указателя, и вы не можете загружать скомпилированный код (только байт-код JVM), вы не можете выйти из песочницы. Добавьте некоторое точное планирование процессов, и все готово!

Полагаю, самое сложное - это выбрать библиотеки, чтобы сделать их полезными, оставаясь в безопасности.

В случае с Python им пришлось модифицировать саму ВМ, потому что она не была разработана с учетом безопасности. К счастью, у них есть сам Гвидо, чтобы сделать это.

0 голосов
/ 07 сентября 2010

чтобы мои клиенты могли безопасно запускать свои приложения на моем движке, не давая им возможности отформатировать мой диск

Этого легко достичь с помощью диспетчера безопасности Java. См. этот ответ для примера.

...