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
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)
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?
No, en este caso, el usuario no está autenticado. – Michel
- 1. Cómo proteger un servidor web DE un servidor proxy inverso
- 2. ¿Cómo puedo proteger un servidor emacs?
- 3. ¿Cómo puedo encadenar mis llamadas a métodos?
- 4. ¿Cómo puedo proteger mi código fuente de ASP.Net de mis desarrolladores?
- 5. Cómo proteger WebFonts
- 6. Mis métodos de ayuda en el controlador
- 7. ¿Cómo puedo extender datetime.datetime de Python con mis propios métodos?
- 8. ¿Cómo evitar muchos parámetros en métodos críticos de mis aplicaciones?
- 9. Extendiendo Protobuf con mis propios métodos
- 10. Mejor estrategia para proteger archivos descargables -php/mysql Servidor Apache2
- 11. cómo proteger mi sitio web
- 12. Cómo mantener mis funciones (objetos/métodos) 'pobre y malo'
- 13. Cómo proteger .NET DLL's
- 14. Cómo proteger Elmah.axd?
- 15. Cómo proteger CouchDB
- 16. Cómo proteger dlls?
- 17. Cómo proteger "." ¿carbonizarse?
- 18. ¿Cómo proteger las clases compiladas de Java?
- 19. ¿Cómo puedo probar mis ssh-keys localmente sin un servidor?
- 20. Proteger el video flash de la descarga/proteger a la derecha
- 21. Sincronización bidireccional de carpetas con encriptación para proteger mis datos de Dropbox
- 22. Proteger REST y JSON
- 23. ¿Cómo puedo proteger el directorio de carga de imágenes de un servidor web?
- 24. ¿Cuándo sincronizo métodos o uso bloques sincronizados en mis métodos en un juego de Android?
- 25. cómo proteger rb_todo todo en ruby
- 26. MonoTouch: Cómo proteger mi aplicación
- 27. Cómo "proteger" las llamadas AJAX?
- 28. Cómo proteger "maestro" en github?
- 29. Cómo proteger el código Javascript?
- 30. Cómo proteger el token .ASPXAUTH
Gracias, implementaré el mecanismo de autenticación. – Michel