Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Edu LorenzoОтветов: 9

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

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

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

obfuscationsilverlight

Ответы

Ответ 1 · рейтинг 14 · Marcus Downing

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

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

Ответ 2 · рейтинг 3 · mletterle

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

Ответ 3 · рейтинг 2 · Community

Просто примечание для пользователей 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

Ответ 4 · рейтинг 1 · Cadoo

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

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

Ответ 5 · рейтинг 1 · Mike

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

Ответ 6 · рейтинг 1 · logicnp

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

Ответ 7 · рейтинг 1 · Murad Mohd Zain

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

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

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

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

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

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

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

Ответ 8 · рейтинг 1 · Migol

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

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

Ответ 9 · Community

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы