Защита кода с помощью загруженных сборок (.NET) - PullRequest
1 голос
/ 31 июля 2009

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

Позвольте мне просто сказать, что у меня есть проект, который позволяет людям загружать динамические сборки - идея - это «плагины». Допустим, он работает на веб-сервере. Они наследуются от абстрактного класса плагина и определяют несколько методов ... но один из них делает это ...

public class SomePlugin : PluginBaseClass {
    //Some method that is supposed to update the 
    //the plugin information
    public virtual void Update() {
        HttpContext.Current.Response.Redirect("http://new-website.com");
    }
}

Я бы не хотел, чтобы динамическая сборка имела доступ к чему-то подобному - но, поскольку она статическая, что вы можете сделать?

Я не уверен, как вы блокируете сборки, но мне кажется, что вы не можете охватить все свои базы. Вы по-прежнему хотите, чтобы они могли создавать классы и иметь доступ к некоторым вещам, но не другим.

Есть предложения по защите статической информации в .NET от динамических сборок?

1 Ответ

1 голос
/ 31 июля 2009

Ответ зависит от того, что ваши плагины должны делать. CAS может быть решением, но я не очень хорош в этом, поэтому я не могу дать вам общий пример. Другим вариантом может быть загрузка плагинов в собственном домене приложения. Экземпляры в другом домене приложения не должны иметь доступа к вашему HttpContext.Current.

...