Где я могу узнать о разрешениях в .NET Framework? - PullRequest
4 голосов
/ 02 января 2012

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

Я также хотел бы знать, какие конкретные разрешения разрешены в приложении Silverlight в Интернете, что является хорошей отправной точкой для запуска сборок в песочнице.

Кроме того, как мне настроить новый домен приложений с нужными мне разрешениями?

1 Ответ

2 голосов
/ 02 января 2012

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

Как и в случае любого вида безопасности, вам нужно создать поверхностьатаки как можно меньше.Это означает, что вам не следует беспокоиться о всех возможных атаках с разрешениями, а, скорее, отрицать все разрешения по умолчанию.Вы позволите только минимально необходимые разрешения, необходимые для запуска приложения.Получив небольшой набор разрешений, вы, возможно, сможете задать более узкий вопрос.

Чтобы настроить AppDomain, вы можете определить параметры безопасности PermissionSet и Evidence перед созданием нового домена.После создания домена (теоретически) невозможно повысить эти привилегии.

var setup = new AppDomainSetup
    {
        ApplicationBase = Path.GetDirectoryName(platform.Location)
    };
PermissionSet permissionSet = new PermissionSet();
permissionSet.AddPermission(
    new FileIOPermission(FileIOPermissionAccess.Read |
        FileIOPermissionAccess.PathDiscovery,
        Path.GetDirectoryName(platform.Location)));
permissionSet.AddPermission(
    new SecurityPermission(SecurityPermissionFlag.Execution));
var sandbox = AppDomain.CreateDomain(name, null, setup, permissionSet);

Код взят из здесь , пример доказательства безопасности и Создание домена приложения с ограниченными разрешениями также может вас заинтересовать.

...