Дотфускатор с веб-приложением
У меня есть ситуация, когда клиент хотел бы иметь минимальную безопасность для своего исходного кода. Это веб-приложение, и хост будет тем, с кем они будут сотрудничать. Беспокойство заключается в том, что хозяину будет легко перепроектировать код и настроить магазин на стороне. Я сказал им, хотя это не было реальным решением, запутывание кода усложнило бы его.
Моя первая проблема: я не могу запутать строго названные сборки. Я полагаю, что могу пропустить запутывание этих сборок, сохраняя при этом ссылку на не запутанные сборки, но я не могу легко это проверить из-за моей второй проблемы.
Моя вторая проблема: я не могу запутать веб-сборку (code-behind), потому что не работает ссылка на разметку на их классы, а также методы, которые вызывает страница разметки.
2 ответа
Вы можете просто обфусцировать строго именованные сборки, если у вас есть ключи, вы можете оставить их после запутывания. В бесплатной версии Community Edition Dotfuscator вам нужно будет вручную переопределить выходы, а в версии Professional он может автоматически переназначить их со строгим именем и / или подписями Authenticode в рамках процесса обфускации.
Вы также можете скрыть код за сборками, но вам необходимо убедиться, что вы исключаете любые типы, на которые есть ссылки в разметке, из переименования. Опять же, это можно сделать как в Community Edition, так и в Professional Edition, установив правила исключения переименования (на основе буквального соответствия или на основе регулярных выражений) или выбрав отдельные типы и элементы, которые следует исключить из переименования. Все это доступно в разделе "Переименование" пользовательского интерфейса Dotfuscator.
Если у вас есть активная подписка на поддержку и вы сталкиваетесь с какими-либо конкретными проблемами при запутывании, вы можете связаться со службой поддержки напрямую с веб-страницы PreEmptive или PreEmptive также проводит публичные форумы, где вы можете оставлять конкретные вопросы.
Вы можете использовать привязку событий для контроля в коде, а не в файле aspx. Как в с # btnSave.Click += Save_Click
и иметь `private void Save_Click(...).
Вы также можете разделить код открытого / защищенного метода на небольшие приватные методы, которые вы можете вызвать из фактического открытого / защищенного метода и выбрать обфускацию только частных методов, которые не будут разорвать связь с разметкой (я думаю, что это библиотечный режим обфускации в Dotfuscator.)
Это позволит вам достичь более высокой степени запутывания.