Хотите узнать о песочнице
Я хочу узнать больше о песочнице. Не только об этом. Я хочу узнать, что я смогу написать песочницу simple.
Удивительно, но никакой информации нет. Даже статья в Википедии не хороша.
Может ли кто-нибудь предложить мне хороший материал. Я знаю, что это концепция очень продвинутого уровня. Итак, каковы предпосылки для обучения и овладения им.
Ответы
Ответ 1
читайте об API-подключении, например песочница перехватывает ядро Windows, чтобы отфильтровать все вызовы api в файловой системе и перенаправляет их на песочницу, вы можете использовать API-интерфейсы и фильтровать их, передавать только действительные параметры, возвращать ошибки для недействительных вызовов
для подключения API вы найдете много материалов в сети, попробуйте codeproject.com
Ответ 2
Google Chromium использует песочницу и имеет несколько документов об этом:
Ответ 3
Вы также можете посмотреть тюрьмы во FreeBSD. Это эквивалент FreeBSD для песочниц.
Доступен исходный код для тюрьмы (хотя вам также нужно будет понять остальную часть кода FreeBSD.)
Ответ 4
Простая песочница будет просто средой, в которой вы позволяете "что-то" выполнять, но ограничиваете, что она может сделать.
Как правило, это "что-то" - это уже существующий язык, такой как Java, или JavaScript, или С#, или собственный код. Java имеет "песочницу" apis для апплетов и т.д., А .NET имеет разные уровни доверия, JavaScript имеет границы, наложенные на нее интерпретаторами (браузерами).
Итак, немного странно "писать" вашу собственную песочницу, если у вас также нет языка, который вы хотите использовать в песочнице.
Есть ли у вас такой язык? Что конкретно вы хотите узнать?
Ответ 5
Это очень зависит от того, что вы хотите использовать в песочнице. Если это полномасштабная система с несколькими доступными интерфейсами/языками, вы действительно не хотите изобретать колесо, но запустите виртуальную машину в VirtualBox, QEmu или другая альтернатива
В любом случае, песочница IS, по крайней мере на каком-то уровне виртуализация системы, в которой вы "должны быть", работает...
Если вам нужны приложения для песочниц для одного (интерпретируемого) языка, изменение звука интерпретатора звучит как разумный подход.
Ответ 6
Ответ, скорее всего, будет специфичным для языка. К сожалению, большинство языков не имеют встроенных возможностей песочницы. Но функциональные языки, как правило, достаточно мощные, что можно строить с нуля, не расширяя язык.
В Tcl основным механизмом является создание подчиненных интерпретаторов:
interp create -safe sandbox
interp eval sandbox $set_up_code
set result [interp eval sandbox $unsafe_code]
Ответ 7
Я написал обзор способов песочницы в Linux на днях, что связано с большим количеством ссылок на различные методы. Подобные методы применимы и в других операционных системах. Я надеюсь, что это будет полезно - я не смог найти много документально подтвержденного.