2010-03-05 9 views
5

acabo de leer algunas publicaciones sobre cómo ocultar el código de Silverlight de alguna manera. La conclusión principal fue que puede ofuscarlo, pero no puede ocultarlo realmente, por lo que las cosas seguras se deben hacer en el servidor. Pero luego, cualquiera puede ver a través de Fiddler qué tipo de información se publica en un servicio web en particular. Por ejemplo, pueden ver que estoy llamando a UpdateCustomer.asmx. Y si lo hacen, ¿qué puedo hacer para evitar que llamen a esa asmx también? ¿Hay alguna manera de permitir que solo 'mi aplicación Silverlight' llame a ese método?cómo proteger mis métodos de servidor

Respuesta

0

supongo que si quería ser realmente paranoico, usted podría reunir todas las llamadas desde la aplicación de cliente a través de un extremo de servicio web y cifrar la carga útil ... algo así como:

  • aplicación cliente realiza punto final "givemeatoken asmx"
  • Server genera cierta llave ficha
  • cliente encripta todas las llamadas a través de dicho distintivo, pasarlos a un solo punto final 'onlyservice.asmx'
  • Server descifra carga útil de llamadas con razón, y llama a rutas 'real' servicios web.
  • El servidor recupera los resultados de la llamada, vuelve a encriptar usando token y vuelve al cliente
  • El cliente descifra los resultados y hace lo que necesita hacer.

Pero eso es solo una locura ... y algo sin sentido, ya que se puede aplicar ingeniería inversa al código de Silverlight para descubrir cuáles serían los servicios "reales". Si realmente desea proteger su aplicación, use autenticación; tanto del lado del cliente como del lado del servidor (es decir, las llamadas a los servicios requieren un ticket de autenticación de algún tipo)

+0

Gracias, implementaré el mecanismo de autenticación. – Michel

1

No. Alguien siempre puede aplicar ingeniería inversa a su aplicación Silverlight para robar cualquier credencial de autenticación que use. Puede hacer que este proceso de ingeniería inversa sea más tedioso de lo que sería de otra manera, pero no puede hacerlo imposible.

¿Por qué es un problema si alguien accede a su URL desde un cliente personalizado? Está autenticando el usuario , ¿verdad?

+0

No, en este caso, el usuario no está autenticado. – Michel

Cuestiones relacionadas