Ответом на мою проблему был один лайнер, который занял три часа моей жизни.
После создания проекта Cordova с нуля, внутри config.xml
вы найдете следующую строку:
<content src="index.html" />
Просто замените index.html
сайтом, на который вы хотите перенаправить приложение. Например:
<content src="http://www.google.com/" />
Я не уверен, делает ли это окончательное приложение небезопасным, но это работает. Наконец, я могу легко встроить любой сайт в приложение Cordova и создать из него APK.
По моему мнению, разрешить запуск собственного кода в вашей системе в первую очередь не очень хорошая идея с точки зрения безопасности. Посмотреть. Возможно, вам следует пересмотреть вопрос о том, чтобы позволить им запускать собственный код , это, безусловно, уменьшит риск.
Чтение страницы codepad.org/about может дать вам несколько интересных идей.
chroot
, тюрьма , контейнер , VServer / OpenVZ / и т. Д., как правило, более безопасны, чем для непривилегированного пользователя, но легче, чем полная виртуализация ОС.
Кроме того, для Java вы можете доверять встроенной изолированной среде JVM, а также для компиляции C ++, NaCl утверждает, что он может быть в песочнице для кода x86.
Но, как говорится в ответе Шекера, доказано, что возможно нанести злонамеренный ущерб почти из любой «песочницы» в прошлом, и я ожидаю, что будут постоянно обнаруживаться новые дыры (и, надеюсь, исправлено) в будущем. Вы действительно хотите использовать ненадежный код?
Посетите ulimit
и его друзей, чтобы узнать, как ограничить возможности обездоленного пользователя DOS-машины.
Чтобы ограничить ЦП и память, вы хотите установить ограничения для групп процессов (ограничения ресурсов POSIX применяются только к отдельным процессам). Вы можете сделать это с помощью cgroups.
Например, чтобы ограничить запуск памяти путем монтирования файловой системы cgroups памяти:
# mount cgroup -t cgroup -o memory / cgroups / memory
Затем создайте новую под- каталог для каждой группы, например
# mkdir /cgroups/memory/my-users
Поместите процессы, которые вы хотите ограничить (процесс с PID "1234" здесь) в эту группу:
# cd /cgroups/memory/my-users
# echo 1234 >> tasks
Установите общий предел памяти для группы:
# echo 1000000> memory.limit_in_bytes
Если процессы в группе разветвляются дочерними процессами, они также будут в группе.
Вышеупомянутая группа устанавливает предел резидентной памяти (т. Е. Ограниченные процессы начнут менять местами, а не использовать больше памяти). Другие cgroups позволяют ограничивать другие вещи,
Не уверен, сколько усилий вы хотите вложить в эту штуку, но можете ли вы запустить Xen как веб-хосты VPS?
Это позволит получить полный root-доступ к их небольшому участку сервера без ущерба для других пользователей или базовой системы.
Try learning a little about setting up policies for SELinux. If you're running a Red Hat box, you're good to go since they package it into the default distro.
This will be useful if you know the things to which the code should not have access. Or you can do the opposite, and only grant access to certain things.
However, those policies are complicated, and may require more investment in time than you may wish to put forth.