Код Silverlight нуждается в защите? - PullRequest
5 голосов
/ 28 октября 2008

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

Ответы [ 7 ]

6 голосов
/ 28 октября 2008

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

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

5 голосов
/ 30 октября 2008

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

2 голосов
/ 29 октября 2008

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

2 голосов
/ 29 октября 2008

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

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

1 голос
/ 19 мая 2010

Эмр,

Да, для применения SL возможно запутывание.

1 голос
/ 28 октября 2008

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

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

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

0 голосов
/ 11 октября 2010

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

...