Silverlight и Obfuscation

Я новичок в Silverlight, и я действительно нахожу его крутым. У меня вопрос о том, как он запускает код на стороне клиента.

Скажем, например, у меня есть сайт, который вычисляет определенную сумму на основе введенных пользователем сумм. Конечно, мне бы хотелось сделать клиентскую сторону. Однако уловка состоит в том, что формула, используемая для расчета, является частной и коммерческой тайной. Если я использую эту формулу на стороне клиента, используя SL, будет ли она безопасна? Или это может быть отражено?

Ответ 1

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

Кроме того, когда у вас есть расчеты на стороне клиента, вы должны всегда проверять результаты на сервере, а не просто полагать, что они верны. Предположим, что клиент скомпрометирован.

Ответ 2

Silverlight выталкивает XAP файл клиенту. XAP файл - это просто zip файл, содержащий ваши сборки .NET, который затем можно распаковать и отразить. Компания, в которой я работаю (PreEmptive Solutions), продает Dotfuscator, который может запутывать сборки Silverlight. Прямо сейчас вам нужно распаковать xap, обфускать и закрепить их обратно, но мы работаем над улучшением рабочего процесса.

Ответ 3

Просто обратите внимание на пользователей Dotfuscator: если вы создаете проект Dotfuscator, вы должны использовать свойство "User Loaded Assembly Load Path" на вкладке "Настройки", чтобы перейти к библиотекам Silverlight. Необходимые пути:

  • \Program Files\Microsoft SDK\Silverlight\v2.0\Reference Assemblies
  • \ Program Files\Microsoft SDK\Silverlight\v2.0\Libraries\Client

    или в 64-разрядных операционных системах:

  • \ Program Files (x86)\Microsoft SDK\Silverlight\v2.0\Reference Assemblies

  • \Program Files (x86)\Microsoft SDK\Silverlight\v2.0\Libraries\Client

Ответ 4

Я ПОЛНОСТЬЮ соглашаюсь с Маркусом. Даже непродуманная сборка .NET по-прежнему легко читается для хорошего программиста.

Моим решением будет WCF-сервис для расчета. Просто нажмите все данные и дайте ответ. Если ваша формула совершенно секретна и не очевидна (например, ax + by + c * z), то даже кто-то получит доступ к сервису, тогда ему будет трудно получить ее.

Ответ 5

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

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

Ответ 6

IntelliLock и .NET Reactor (мой предпочтительный инструмент) прекрасно ослабливают мои сборки.

Ответ 7

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

Ответ 8

Еще один классный инструмент - CodeFort. Он имеет бесплатное издание. См. Его в действии на http://www.codefort.org

CodeFort.NET и обфускатор Silverlight

CodeFort - это усовершенствованный инструмент обфускатора и защиты для приложений Microsoft.NET и Silverlight.

Обфускатор BAML и XAML - обфускация 100% вашего кода

CodeFort - это первый инструмент, когда-либо имеющий возможность обфускации идентификаторов внутри кода XAML и BAML, который используется в приложениях Silverlight и WPF. Это в первый раз позволяет обфускать 100% вашего кода.

Мощная защита от злоумышленников

Связывание обфускации XAML/BAML с мощными функциями защиты, такими как Reference Scrambling и Anti-Tampering. CodeFort - это современный инструмент для обфускации.

Ответ 9

Есть много компаний, которые поддерживают запутывание приложений Silverlight 2.0. DeepSea Obfuscator имеет хорошо интегрированный опыт, Dotfuscator также работает, и вскоре бесплатный Eazfuscator также будет поддерживать его.