Я новичок в silverlight, и мне это действительно здорово. У меня вопрос о том, как он запускает код на стороне клиента ..
Скажем, например, у меня есть сайт, который вычисляет определенную сумму на основе введенных пользователем сумм. Конечно, я бы хотел сделать это на стороне клиента. Однако загвоздка в том, что формула, используемая для расчета, является коммерческой тайной. Если я использую эту формулу на стороне клиента, будет ли это безопасно? Или это можно отразить?
Думайте об этом как о размещении миниатюрного кода JavaScript на вашей веб-странице: конечно, его будет трудно читать, но тот, кто действительно хочет знать ваш алгоритм, сможет понять это. Sasha Chedygov 25.06.2010
Если вы хотите сохранить алгоритмы в секрете, не перекладывайте их на клиентскую сторону. Никакая форма обфускации или защиты никогда не бывает идеальной.
Кроме того, когда у вас есть вычисления на стороне клиента, вы должны всегда проверять результаты на сервере, а не просто предполагать, что они верны. Предположим, что клиент скомпрометирован.
Ответ 2 · рейтинг 3 · mletterle
Silverlight отправляет файл XAP клиенту. Файл XAP - это просто zip-файл, содержащий сборки .NET, которые затем можно распаковать и отразить. Компания, в которой я работаю (PreEmptive Solutions), продает Dotfuscator, который может скрывать сборки Silverlight. Прямо сейчас вам нужно распаковать xap, затемнить и снова заархивировать их, но мы работаем над улучшением рабочего процесса.
Ответ 3 · рейтинг 2 · Community
Просто примечание для пользователей Dotfuscator: если вы создаете проект Dotfuscator, вы должны использовать свойство "Определяемый пользователем путь загрузки сборки" на вкладке "Настройки", чтобы перейти к библиотекам Silverlight. Вам нужны следующие пути:
\ Program Files \ Microsoft SDKs \ Silverlight \ v2.0 \ Reference Assemblies
\ Program Files \ Microsoft SDK \ Silverlight \ v2.0 \ Libraries \ Client
или в 64-битных операционных системах:
\ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v2.0 \ Reference Assemblies
\ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v2.0 \ Libraries \ Client
Ответ 4 · рейтинг 1 · Cadoo
Не попадайтесь в ловушку, думая, что алгоритм защитит его. Как только вы разместите его в сети, кто-нибудь поймет, что бы вы ни делали. Имея достаточное количество образцов данных, любой, кто обладает некоторыми математическими навыками, сможет понять ваш алгоритм.
Все, что вы можете сделать, - это усложнить задачу. Если этот алгоритм является чем-то проприетарным, что вы купили, то он должен быть на стороне сервера. Размещение алгоритма на стороне клиента, по сути, его публикация, и вы можете нести ответственность.
Хотя обфускация не является надежным методом, она значительно усложняет кому-либо просмотр вашего кода. Чтобы добраться до окончательного кода, нужно действительно прыгать через запутанные обручи, если уровни обфускации хороши. 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.