Pregunta

No entiendo bien cómo funciona el código Silverlight en el navegador. ¿Se descargan los ensamblajes en la máquina cliente? ¿Hay alguna posibilidad de que el código se descomponga utilizando Reflector o alguna herramienta similar? Si es así, ¿qué opciones tiene uno para proteger el código? ¿Funcionan los ofuscadores de .net con Silverlight?

¿Fue útil?

Solución

Para ver una aplicación Silverlight, el cliente descarga un archivo .xap que contiene la dll y un xml de configuración y recursos opcionales. La dll contiene el código c # compilado que se ejecuta en un tiempo de ejecución de Silverlight en la máquina cliente. El tiempo de ejecución de Silverlight es básicamente un subconjunto del tiempo de ejecución completo de .net. Entonces, el punto es que el usuario obtiene el código en dll y luego puede usar herramientas para obtener el código fuente original. Así que a lo sumo que puedes hacer es ofuscación. Todavía por código muy crítico que no debería ser la opción. Puede usar alguna otra forma (WCF u otros servicios web para ocultar alguna parte de su código puede ser) si grita su necesidad.

Otros consejos

Siempre que esté en un navegador web, todo el código del lado del cliente se descarga a la máquina y puede ser examinado por el usuario. Esto se aplica a Javascript, Flash y Silverlight.

Si tiene un código de propiedad que absolutamente debe estar oculto, debe colocarlo en el servidor y exponer una API a la que los clientes pueden llamar para mostrar información al usuario.

Si desea ver lo fácil que es ver el código en una aplicación de Silverlight, simplemente ejecute SilverlightSpy texto del enlace por FirstFloor . Siempre que tenga instalado .NET Reflector podrá ver (como interactúa con la aplicación) todo el código fuente, incluidos los archivos xaml.

Dado que el código se descarga al cliente (e incluso intentando evitarlo con pragma no-cache no funcionará ya que pueden llegar a la URL. Deberá proteger su código manteniendo una lógica importante en el servidor.

Si temes que alguien te robe tu propiedad intelectual y esa ley no es suficiente, entonces deberás ofuscar tu código. Pero no llamaría a esa protección, por decirlo, sino un impedimento para el ingeniero de ingeniería inversa ocasional.

Poner un pragma -No Cache- evitará que el .xap se almacene en la máquina, en su lugar será transmitido por el complemento Silverlight. Sin el pragma, el archivo .xap se almacena en los archivos temporales de Internet.

Poner la aplicación en una página en https protegerá aún más la transmisión del .xap

Si es posible, se requiere autenticación para ver la página web / archivo .xap (gracias Joel)

Emrah,

Sí es posible la ofuscación para la aplicación de SL.

Sí, los archivos Silverlight xap no son más que archivos zip con sus ensamblajes en ellos, por lo que necesitan protección a través de ofuscación. Prueba Crypto Obfuscator - esto confunde directamente los archivos XAP, también puede ofuscar XAML archivos en sus ensamblajes cambiando el nombre de las referencias de clase, eliminando comentarios, espacios en blanco, nuevas líneas, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top