Хочу узнать о [закрытой] Игре в песочнице

12
задан claws 7 January 2010 в 07:54
поделиться

6 ответов

прочитайте о перехвате API, например песочница перехватывает ядро Windows, чтобы отфильтровать все вызовы api к файловой системе и перенаправляет результат в песочницу, можно перехватить API и отфильтровать его, передают только допустимые параметры, возвращают ошибки при недействительных вызовах

для перехвата API вы найдете много материалов в сети, попробуйте codeproject.com

.
7
ответ дан 2 December 2019 в 07:21
поделиться

Google's Chromium использует песочницу и имеет несколько документов об этом:

4
ответ дан 2 December 2019 в 07:21
поделиться

Вы также можете посмотреть на тюрьмы во FreeBSD. Это эквивалент FreeBSD для песочниц.

-12160] доступен исходный код jail (хотя вы должны понимать и остальную часть кода FreeBSD)

.
3
ответ дан 2 December 2019 в 07:21
поделиться

Это очень зависит от того, что вы хотите сделать с песочницей. Если это полноценная система с множеством доступных интерфейсов/языков, то вы действительно не хотите заново изобретать колесо, а запустить виртуальную машину в VirtualBox, QEmu или какой-нибудь другой альтернативе

В любом случае, песочница IS, по крайней мере, на каком-то уровне виртуализации системы, которую вы "должны" запустить. ...

Если вам нужно изолировать приложения для одного (интерпретируемого) языка, модификация интерпретатора звучит как разумный подход.

.
2
ответ дан 2 December 2019 в 07:21
поделиться

Ответ, скорее всего, будет языковым. К сожалению, большинство языков не имеют встроенных возможностей песочницы. Но функциональные языки, как правило, достаточно мощные, чтобы можно было строить с нуля, не расширяя язык.

В Tcl основной механизм заключается в создании ведомых интерпретаторов:

interp create -safe sandbox
interp eval sandbox $set_up_code
set result [interp eval sandbox $unsafe_code]
1
ответ дан 2 December 2019 в 07:21
поделиться

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

Обычно, это "нечто" - уже существующий язык, такой как Java, или JavaScript, или C#, или родной код. Java имеет "песочницу" apis для апплетов и так далее, и .NET имеет различные уровни "доверия", JavaScript имеет границы, накладываемые на него интерпретаторами (браузерами).

Так что немного странно "писать" свою собственную песочницу, если только у вас нет языка, который вы хотите "песочницы".

У вас есть такой язык? О чем конкретно Вы хотите узнать?

3
ответ дан 2 December 2019 в 07:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: