Как обеспечить изоляцию?

Мне нужно разрешить моим пользователям выполнять код.NET, который они предоставляют на моем сервере. Я знаю, что безопасность - большая проблема, но это должно быть сделано таким образом.

В настоящее время я запускаю код моих пользователей под ограниченной учетной записью Windows. Но я обеспокоен тем, что.NET Framework предоставляет множество классов, которые при злонамеренном использовании могут нанести вред серверу - классы в пространстве имен Reflection являются одним примером, а CodeDom - другой проблемой.

Хотелось бы, чтобы был способ создать "облегченную виртуальную среду", которая могла бы выполнять код.NET, но была бы полностью изолирована. Вроде как Virtual PC, но гораздо более легкий - единственная возможность - пользователи могут выполнять вычисления и, возможно, вызывать стороннюю веб-службу.

Есть ли на рынке что-то, что обеспечивает изолированную среду для приложений.NET?

Благодарю.

1 ответ

Решение

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

Другие вопросы по тегам