Добрый день. Разрабатываю приложение, которое использует встроенные lua скрипты. Т.к. с условием специфики задачи нужен именно dotnet core, выбор пал на NeoLua. Но я не могу ограничить права выполняемого кода скрипта. Как пример - доступ на чтение из файлов. Если абстрагироваться от Lua, то задача сводиться к простому вопросу: Как изолировать небезопасный код в dotnet core приложении?
В .NET Framework был AppDomain, но
.NET Core does not support AppDomains or sandboxing:
Free of problematic tech. .NET Core doesn’t include certain technologies we decided to discontinue because we found them to be problematic, for instance AppDomain and sandboxing. If the scenario still makes sense for .NET Core, our plan is to have replacements. For example, AssemblyLoadContext replaces AppDomains for loading and isolating assemblies.
И как теперь ограничить вызов какого-нибудь метода в правах?
как пример:
public static void Main(string[] args)
{
//Sandbox for deny read files acess
{
var text = string.Empty;
using (var reader = new StreamReader("test.txt"))
{
text = reader.ReadToEnd();
}
}
}
Что можете посоветовать? Как решать? В какую сторону копать?