2008-10-28 11 views
5

No entiendo muy bien cómo funciona el código de Silverlight en el navegador. ¿Los ensambles se descargan a la máquina del cliente? ¿Hay alguna posibilidad de que el código se descompile usando Reflector o alguna herramienta similar? Si es así, ¿qué opciones tiene uno para proteger el código? ¿Los ofuscadores .net funcionan con Silverlight?¿El código Silverlight necesita protección?

Respuesta

5

Para ver una aplicación de Silverlight, el cliente descarga un archivo .xap que contiene el dll y un xml de configuración y recursos opcionales. El dll contiene código C# compilado que se ejecuta en un tiempo de ejecución de Silverlight en la máquina del cliente. El tiempo de ejecución de Silverlight es básicamente un subconjunto del tiempo de ejecución .net completo. 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. Entonces lo máximo que puedes hacer es ofuscación. Todavía para código muy crítico que no debería ser la opción. Puede usar de otra manera (WCF u otros servicios web para ocultar alguna parte de su código) si se trata de su necesidad.

6

Siempre que se encuentre 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 debe estar oculto, debe colocarlo en el servidor y exponer una API que los clientes puedan llamar para mostrar información al usuario.

1

Poner un pragma -Ning caché- evitará que el .xap se almacene en la máquina, sino que será transmitido por el complemento de Silverlight. Sin el pragma, el archivo .xap se almacena en los archivos de Internet temporales.

poner la aplicación en una página en https protegerá aún más la transmision de la .xap

Si es posible requerir autenticación para ver el archivo de página web/.xap (gracias a Joel)

+1

Un hacker puede descargar el .xap manualmente ya que la página web para indicar explícitamente dónde está ubicado el recurso en. –

2

Si desea vea lo fácil que es mirar el código en una aplicación Silverlight simplemente ejecute SilverlightSpy link text por FirstFloor. Siempre y cuando tenga .NET Reflector instalado, podrá ver (mientras 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 trying to prevent it with pragma no-cache no funcionará, ya que pueden golpear la URL) deberá proteger su código manteniendo una lógica importante en el servidor.

2

Si teme que alguien le robe su propiedad intelectual y esa ley no es suficiente, entonces deberá ofuscar su código. Pero yo no llamaría esa protección por decir, sino un impedimento para el ingeniero de inversión ocasional.

1

Emrah,

Sí ofuscación es posible que la aplicación SL.

0

Sí, los archivos de Silverlight xap no son más que archivos zip con sus ensamblados en ellos, por lo que necesitan protección mediante ofuscación. Pruebe Crypto Obfuscator - ofusca directamente los archivos xap, también puede confundir los archivos XAML en sus ensamblados al cambiar el nombre de las referencias de clase, eliminar comentarios, espacios en blanco, líneas nuevas, etc.

Cuestiones relacionadas