Pregunta

Snoop le permite ver el interior de las propiedades de los elementos de aplicación y el cambio. Es una gran ventaja para los desarrolladores, pero puede ser un problema de seguridad en algunos casos, como cuando tenemos usuarios que les gusta mirar en lugares donde no deberían estar buscando. ¿Hay una manera de hacer algo para bloquear aplicaciones como Snoop de "espionaje" su aplicación?

Y si no hay manera de bloquearlo, ¿qué recomienda hacer para minimizar los riesgos de seguridad?

Snoop es una utilidad que te permite navegar por el árbol visual de una aplicación WPF y ver y cambiar las propiedades. Es muy útil cuando se está intentando depurar algo y no tiene idea de lo que está pasando. Puede encontrar más aquí .

Gracias.

¿Fue útil?

Solución

Mediante la implementación de seguridad correctamente. Si su "seguridad" puede ser frustrado con una herramienta como Snoop, a continuación, lo estás haciendo mal.

Supongamos que hay un comando que sólo ciertos usuarios pueden ejecutar. Suena como el único lugar que están haciendo cumplir esto es a nivel de interfaz de usuario (mediante la desactivación de la tecla correspondiente, por ejemplo). Siendo ese el caso, tienes razón - Yo podría utilizar Snoop para activar el botón y ejecutar el comando. Pero usted debe ser hacer cumplir las restricciones de seguridad en el servidor, o tal vez en su lógica de ejecución de comandos si no tiene un servidor. Básicamente, la seguridad debe implementarse lo más cercano a lo que estamos tratando de proteger como sea posible. Seguridad a nivel de interfaz de usuario es meramente por conveniencia del usuario.

Otros consejos

En realidad, hay una manera de detectar si su solicitud está siendo "pueda interceptar" por el programa de Snoop. La solución daré no es una bala de plata, y si alguien realmente quiere espiar su aplicación, que tendrían que modificar el código fuente snoop (que es un proyecto de código abierto).

Lo que husmear en realidad hace es que inyecta una asamblea en su aplicación, y el conjunto inyecta examina de forma recursiva sus aplicaciones árbol visual a partir de la raíz. En otras palabras, husmear en realidad se ejecuta dentro de su aplicación. Una vez dicho esto, la solución es elevar un evento cuando el fisgón se inyecta el montaje en su aplicación.

En primer lugar, tiene que suscribirse a la asamblea en algún caso-cargada en su aplicación (preferiblemente el begginging):

AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);

A continuación, debería implementar el controlador de algo como esto:

        void CurrentDomain_AssemblyLoad(object sender, AssemblyLoadEventArgs args)
    {
        if (args.LoadedAssembly.FullName.StartsWith("ManagedInjector"))
            MessageBox.Show("hey you, stop snooping");//and shut down your application.
    }

Es probable que necesitaría para mejorar esta solución para la solución de plata-bala de verdad, pero al menos esta solución será definitivamente detener la actual versión más reciente de Snoop está ejecutando como es (sin el código modificado). La mejor solución sería para comprobar que no hay conjuntos externos están siendo inyectados en su aplicación.

Sin embargo, Kent sigue siendo justo en el hecho de que una utilidad como Snoop no debe causar cualquier vulnerabilidad de seguridad ya que la seguridad no debe ser implementada a nivel de interfaz de usuario. Pero al menos esto demuestra cómo evitar que la gente de "espionaje" su aplicación.

Los grandes respuestas para una pregunta muy buena,

Quiero añadir un ejemplo de la contraseña que nunca debe ser guardado en la DataContext, como comprobar Snoop también el DataContext de la interfaz de usuario, por lo que si se utiliza el PasswordBox control de la derecha se encuentra que no puede enlazar la contraseña propiedad, eso significa que incluso si snoop la aplicación no se puede obtener la contraseña, ya que no se guarda en cualquier propiedad

Sin embargo, nos encontramos con muchas personas que tratan de crear un trabajo alrededor (ayudantes, comportamientos, usercontrol ...) se unen a la contraseña, pero se olvidan de que Snoop puede conseguir de esa manera

Así que su servidor nunca debe confiar en su cliente, cada vez que se debe comprobar el privilegio derecha (como se puede oler la solicitud del cliente utilizando Fiddler para exp luego reconstruir una solicitud de atención al cliente al que por la seguridad de aplicaciones cliente pase)

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