Как упаковать приложение ASP.NET, чтобы пользователи не могли его изменять?
-
06-07-2019 - |
Вопрос
Существует ли инструмент или какой-то общий подход к упаковке всех файлов ASP.NET приложения в двоичную форму, чтобы предотвратить модификацию после его развертывания?Я думаю, что там будет набор подписанных двоичных файлов и конфигурационный файл для настроек, которые мы разрешаем клиенту изменять.Кто-нибудь пытался это сделать, возможно ли это вообще?
Я бы заплатил разумную сумму за отличный коммерческий продукт, который делал бы это с минимальными хлопотами.
Обновить
Извините, из ответов я вижу, что выразился не совсем ясно.Я имел в виду буквально упаковку ВСЕХ файлов, а не только файлов кода.Это означает aspx, скрипты, изображения и т.д.Я не пытаюсь предотвратить реверс-инжиниринг...это проблема поддержки, т.е.чтобы избежать проблем, вызванных тем, что клиент возится с файлами.
Нет правильного решения
Другие советы
Если вы создали проект веб-приложения, вы можете скомпилировать свой код в один dll-файл.Вы можете найти его в папке bin.
Просто используйте aspnet_compiler.exe для предварительной компиляции всего, а затем используйте aspnet_merge.exe для объединения всех скомпилированных сборок в одну сборку.Вы можете использовать инструмент обфускации, такой как DotFuscator, если хотите усложнить реверс-инжиниринг.Visual Studio pro и выше включает "облегченную" версию Dotfuscator, которую вы можете использовать для этого.
Ваши файлы codebehind будут скомпилированы в единую библиотеку dll, как уже упоминал ZippyV.ASPX-файлы будут нормально развернуты на веб-сервере.
Но, тем не менее, ваши dll-файлы могут быть довольно легко разобраны.Поэтому, чтобы быть уверенным, вы должны использовать обфускатор.
Если вы имеете в виду ВСЕ файлы, включая aspx, вы также могли бы рассмотреть ngen.Он предварительно компилирует все в библиотеку dll, так что вы даже не можете получить доступ к aspx-страницам.
Хотя ngen был разработан, чтобы избавиться от функции JIT-компиляции фреймворка, и определенно не является общепринятым подходом, но в вашем случае он может хорошо сработать.
В VS2008 выберите пункт меню "Инструменты", а затем "Dotfuscator Community Edition".После его запуска у вас появится ссылка "Узнать больше".
Я также подписываю свой, используя SN.exe, чтобы у него было сильное название.Учитывая все это, я думаю, что разобраться с системой достаточно сложно, если вам предоставят исходный код и справку....так что я больше не беспокоюсь об этом.
может быть Точечный фускатор ваш клиент не сможет ни модифицировать его, ни реинжинирировать :)