Является ли Appdomain единственным способом для песочницы IronPython? - PullRequest
2 голосов
/ 05 января 2011

Я имею в виду " Песочница Ironpython ".

У меня есть несколько отличные требования от оригинального плаката:

В частности, нам нужно ограничить различные функции - доступ к файловой системе в порядке, большинство стандартных модулей Python также в порядке, нонесколько явных DLL-библиотек .NET должны быть разрешены (мы хотим ограничить скрипты python «официальным» API, который мы предоставляем).AFAICs, для этого нужно подключиться к реализации оператора импорта python.

Есть ли способ сделать это?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 06 января 2011

Да, AppDomains - единственный способ.Если вы ограничите доступ через «песочницу» .NET, то все, что вы можете сделать со стандартной библиотекой, также будет соответствующим образом ограничено.Так зачем ограничивать какие-либо скрипты Python?Они не могут делать то, что ты не разрешил иначе.

1 голос
/ 20 февраля 2015

Я публикую это, чтобы другие люди не тратили столько времени на это.

От старшего разработчика в группе безопасности CLR в ответ на то, что произойдет, если вы попытаетесь использоватьos.py:

"Исключение SecurityEx в образце repro создается, потому что прозрачный код безопасности в IronPython вызывает критический код безопасности (GCHandle.Free), что приводит к требованию неограниченных разрешений."

Невозможно дать ему необходимые разрешения:

" нет набора разрешений, который добавляет PermissionState.Unrestricted "

Даже если бы вы могли заставить его работать, песочница AppDomain бесполезна:

"Что касается песочницы ненадежного кода, очень скоро мы выпустим новое руководство о том, что частичное доверие не должно бытьиспользуется в качестве границы безопасности. Полное руководство гласит: «.NET Framework предоставляет механизм для обеспечения различных уровней доверия при выполнении другого кодав том же приложении под названием Code Access Security (CAS).Защита доступа к коду в .NET Framework не должна использоваться в качестве границы безопасности с частично доверенным кодом, особенно кодом неизвестного происхождения.Мы не советуем загружать и выполнять код неизвестного происхождения, не применяя альтернативные меры безопасности. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...