Вопрос

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

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

Решение

Pragma No-Cache на странице, на которой размещено приложение silverlight, не позволит браузеру кэшировать xap, вместо этого он будет читать его посредством потоковой передачи с веб-сервера.Из-за этого людям будет сложнее получить XAP.Запутывание еще больше усложнит задачу.

Также убедитесь, что приложение размещено по протоколу https, а аутентификация выполняется вне основного приложения.Таким образом, поток xap кодируется на пути вниз.

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

Вы действительно не можете скрыть ничего, что передается клиенту.Если люди захотят это понять, они это сделают.

Вам нужно поместить любой проприетарный код в свою серверную часть, где клиентские машины не смогут его получить.

Нет.Клиентский браузер должен иметь возможность читать код, поэтому его можно взломать.

Вот короткая статья о том, как запутать файл XAP.

http://www.rudigrobler.net/Blog/obfuscating-silverlight

Вы можете усложнить работу потенциальному хакеру, загрузив запутанные фрагменты вашего приложения во время выполнения, например, используя MEF.Излишне говорить, что интересно, если ваше приложение достаточно велико, чтобы этот трюк ускорял время запуска, а не мешал работе пользователя.

Это не помешает доблестному хакеру заполучить ваш код (на самом деле ни один метод не может этому помешать, поскольку плагин Silverlight должен уметь его выполнять), но астьюс сильно усложнит ему задачу.

предотвращение кэширования XAP браузером бесполезно, как и использование HTTPS, поскольку злоумышленнику гораздо проще использовать что-то столь же сложное, как Firebug, для получения XAP, чем искать его в кеше браузера или использовать атаку «Человек посередине».

Я думаю, что если бы у вас была большая мотивация, вы могли бы:

  • запутывать каждую сборку
  • использовать динамически загружаемые XAP
  • зашифруйте динамически загружаемую серверную часть XAP и дешифруйте ее на стороне клиента, используя динамически сгенерированный ключ, отправленный веб-службой (не в том же запросе.И не используйте ключ повторно.)

Это не помешает злоумышленнику получить ваш код, но ему придется проанализировать ваш первоначальный (запутанный) XAP, чтобы понять код дешифрования, получить ключ, получить зашифрованный (тоже запутанный) динамически загружаемый XAP, расшифровать его, а затем управлять чтобы разъяснить его, а затем понять, как он подключается к приложению.Это не то же самое, что использование HTTPS, поскольку здесь процесс шифрования и дешифрования выполняется в приложении, поэтому такие инструменты, как Firebug или Fiddler, становятся бесполезными.

Хем.Ничто не может помешать кому-либо прочитать ваш код.НО можно сделать так, чтобы это не стоило его времени.Вам не обязательно использовать все идеи, представленные здесь, и я уверен, что вы сможете найти и другие, но убедитесь, что реализация таких мер тоже стоит вашего времени.

В любом случае, было довольно забавно это писать :p

Вы не можете скрыть (по крайней мере, нетривиально) файлы XAP.Но вы можете их запутать.Обфускация не является окончательным ответом, но это начало, которое может обеспечить довольно хорошую защиту.

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