Я работаю над приложением, которое поддерживает запуск кода, написанного пользователями, использующими VBCodeProvider. Я хотел бы ограничить то, что они могут сделать, например:
- Блок отражения
- Блокировать доступ к файловой системе на уровне сценария (ссылочные сборки должны иметь доступ к нему)
- Убедитесь, что они не могут вызвать какой-либо неуправляемый код
- Блокировать прямой доступ к базе данных (SQL Server), они могут использовать только сборку уровня данных, на которую ссылаются
- Запретить доступ к определенным методам в ссылочных сборках, которые являются частью нашего проекта
Как лучше всего подойти к нему? Что еще нам следует подумать о предоставлении пользователю такого типа функциональности?