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





Нет. Клиентский браузер должен уметь читать код, поэтому его можно взломать.
Вы действительно не можете скрыть ничего, что передается клиенту. Если люди захотят в этом разобраться, они это сделают.
Вам нужно поместить любой проприетарный код в свой бэкэнд, где клиентские машины не могут его получить.
Pragma No-Cache на странице, на которой размещено приложение silverlight, не позволит браузеру кэшировать xap, вместо этого он будет читать его путем потоковой передачи с веб-сервера. Из-за этого любителям будет сложнее получить xap. Обфускация усложнит задачу.
Также убедитесь, что приложение размещено на https, а проверка подлинности выполняется вне основного приложения. Таким образом, поток xap кодируется на пути вниз.
Вот небольшая статья о том, как запутать xap-файл.
Вы не можете скрыть (по крайней мере, нетривиально) файлы XAP. Но вы можете их запутать. Обфускация - это не окончательный ответ, но это начало, и она может дать неплохую защиту.
Вы можете усложнить работу потенциального хакера, загрузив запутанные фрагменты вашего приложения во время выполнения, например, используя MEF. Излишне говорить, что интересно, если ваше приложение достаточно велико, чтобы это ускорило время запуска, а не мешало работе пользователя.
Это не помешает доблестному хакеру получить ваш код (в руке никакой метод не может предотвратить это, поскольку плагин Silverlight должен уметь его выполнять), но хитрость значительно усложнит его задачу.
предотвращение кэширования XAP браузером бесполезно, как и использование HTTPS, поскольку злоумышленнику гораздо проще использовать что-то столь же сложное, как firebug, для получения XAP, чем искать его в кеше браузера или использовать Man in the Middle Attack.
Я полагаю, что если бы у вас была сильная мотивация, вы могли бы:
Это не помешает злоумышленнику получить ваш код, но ему придется проанализировать ваш исходный (запутанный) xap, чтобы понять код расшифровки, получить ключ, получить зашифрованный (тоже запутанный) динамически загруженный XAP, расшифровать его, а затем управлять чтобы разблокировать его, а затем понять, как он подключается к приложению. Это не то же самое, что использование HTTPS, потому что здесь процесс шифрования и дешифрования выполняется в приложении, поэтому такие инструменты, как firebug или fiddler, становятся бесполезными.
Подол. Ничто не может помешать кому-либо прочитать ваш код. НО вы можете сделать так, чтобы это не стоило его времени. Вам не обязательно использовать все идеи здесь, и я уверен, что вы сможете найти другие, но убедитесь, что реализация таких мер тоже стоит вашего времени.
В любом случае, написать это было довольно забавно: p
но злоумышленник получит xap, используя Firebug, включив кеширование и Https, или нет. Он даже не увидит твоих усилий, не так ли?