Silverlight и обфускация

Я новичок в silverlight, и мне это действительно здорово. У меня вопрос о том, как он запускает код на стороне клиента ..

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


person Edu Lorenzo    schedule 16.01.2009    source источник
comment
Думайте об этом как о размещении миниатюрного кода JavaScript на вашей веб-странице: конечно, его будет трудно читать, но тот, кто действительно хочет знать ваш алгоритм, сможет понять это.   -  person Sasha Chedygov    schedule 25.06.2010


Ответы (9)


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

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

person Marcus Downing    schedule 16.01.2009
comment
+1: Обфускация обычно бесполезна для секретов любой приличной ценности. - person MichaelGG; 16.02.2009

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

person mletterle    schedule 16.02.2009

Просто примечание для пользователей Dotfuscator: если вы создаете проект Dotfuscator, вы должны использовать свойство «Определяемый пользователем путь загрузки сборки» на вкладке «Настройки», чтобы перейти к библиотекам Silverlight. Вам нужны следующие пути:

  1. \ Program Files \ Microsoft SDKs \ Silverlight \ v2.0 \ Reference Assemblies
  2. \ Program Files \ Microsoft SDK \ Silverlight \ v2.0 \ Libraries \ Client

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

  3. \ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v2.0 \ Reference Assemblies

  4. \ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v2.0 \ Libraries \ Client
person Community    schedule 28.02.2009
comment
Начиная с версии 4.4.1600 Dotfuscator Professional от 18 декабря 2008 г. вам больше не нужно было добавлять определяемый пользователем путь загрузки сборки для Silverlight. - person Joe Kuemerle; 23.04.2009

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

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

person Cadoo    schedule 28.02.2009

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

person Mike    schedule 03.11.2009

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

person logicnp    schedule 05.11.2009

Еще один крутой инструмент - CodeFort. Имеется бесплатная версия. Посмотрите, как это работает, на http://www.codefort.org.

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

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

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

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

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

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

person Murad Mohd Zain    schedule 25.06.2010
comment
Бесплатная версия отлично работает на win7 x64, DRM после покупки ужасен и не может получить ответ ни от кого. Не работает на win8 / 8.1. Мне нравится этот инструмент, но нужна лучшая поддержка. - person Behr; 10.12.2013

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

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

person Migol    schedule 28.02.2009

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

person Community    schedule 03.04.2009