Вопрос

Я не совсем понимаю, как код Silverlight работает в браузере.Загружены ли сборки на клиентский компьютер?Есть ли вероятность того, что код будет декомпилирован с помощью Reflector или другого подобного инструмента?Если да, то какие варианты защиты кода есть?Работают ли обфускаторы .net с Silverlight?

Это было полезно?

Решение

Чтобы просмотреть приложение Silverlight, клиент загрузит файл .xap, который содержит dll и один XML-файл конфигурации и дополнительные ресурсы. DLL содержит скомпилированный код C #, который выполняется во время выполнения Silverlight на клиентском компьютере. Среда выполнения Silverlight представляет собой подмножество полной среды выполнения .net. Таким образом, дело в том, что пользователь получает код в dll, а затем может использовать инструменты для получения оригинального исходного кода. Так что самое большее, что вы можете сделать, это запутывание. Все еще для очень важного кода, который не должен быть вариантом. Вы можете использовать другой способ (WCF или другие веб-сервисы, чтобы скрыть какую-то часть вашего кода), если он кричит о ваших потребностях.

Другие советы

Всякий раз, когда вы находитесь в веб-браузере, весь клиентский код загружается на компьютер и может быть просмотрен пользователем. Это касается Javascript, Flash и Silverlight.

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

Если вы хотите увидеть, как просто посмотреть код в приложении silverlight, просто запустите SilverlightSpy текст ссылки от FirstFloor . Пока у вас есть .NET Reflector , вы сможете видеть (как вы взаимодействуете с приложением) весь исходный код, включая файлы xaml.

Поскольку код действительно загружается на клиент (и даже пытается предотвратить его с помощью Pragma no-cache не будет работать, так как они могут попасть в URL). Вам нужно будет защитить свой код, сохранив важную логику на сервере.

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

Установка прагмы -No Cache- предотвратит сохранение .xap на компьютере, вместо этого он будет транслироваться плагином Silverlight. Без прагмы файл .xap хранится во временных файлах Интернета.

Размещение приложения на странице в https защитит передачу .xap

Если возможно, потребуйте аутентификацию для просмотра веб-страницы / файла .xap (спасибо Джоэл)

Эмра,

Да, для приложения SL возможна обфускация.

Да, xap-файлы Silverlight - это не что иное, как zip-файлы с вашими сборками в них, поэтому они нуждаются в защите через запутывание. Попробуйте Crypto Obfuscator - он непосредственно запутывает файлы xap, он также может запутывать XAML файлы в ваших сборках путем переименования ссылок на классы, удаления комментариев, пробелов, новых строк и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top