Evite la enumeración de fuerza bruta de clientes en una aplicación SaaS

2

Estoy involucrado en el desarrollo de una aplicación SaaS. Nosotros alojamos la aplicación para diferentes clientes. Un cliente es una empresa. Cada cliente obtiene acceso a su instancia alojada de la aplicación a través de una URL https://example.com/customername .

Ya tenemos una instancia en la que un cliente probó con otras compañías (potencialmente competidores) para el customername para ver si otra persona también está usando nuestro producto. Personalmente, no creo que esto sea un gran problema, pero reconozco que puede ser tanto un problema para algunos clientes potenciales como un problema de seguridad, así que estoy interesado en las estrategias de mitigación.

Las posibles soluciones hasta ahora son

  • Agregue una cadena indiscutible al customername : https://example.com/acmeinc-8a4f . Creo que esto a) se ve feo (y sí, ya tenemos un cliente que insistió en una ortografía particular en la URL por razones de CI) yb) absolutamente requiere que todos los usuarios tengan un marcador o recuerden una cosa más irrelevante. li>
  • Solo muestre un formulario de inicio de sesión independientemente de lo que se use como customername y simplemente rechace cualquier combinación de usuario / contraseña. Esto parece prometedor al principio, pero ya estamos implementando diferentes mecanismos de inicio de sesión, incluido el inicio de sesión sin contraseña a través de SSO para que los clientes obtengan diferentes pantallas de inicio de sesión. Esto también evita una versión de una pantalla de inicio de sesión donde el nombre del cliente se convierte en parte del formulario de usuario / contraseña. Estoy seguro de que tarde o temprano la pantalla de inicio de sesión también tendrá que coincidir con el IC de un cliente.

¿Es incluso posible mitigar este problema de forma fácil para el usuario?

    
pregunta musiKk 19.02.2015 - 08:53
fuente

1 respuesta

1

Agregar una cadena difícil de adivinar sería solo seguridad a través de la oscuridad (pero un tanto efectivo en este caso para proteger contra la enumeración).

Puede establecer la compensación de seguridad / conveniencia (cuando usa /customername ) en sus Términos y condiciones; Condiciones

También puede pedirle al cliente que haga una elección (al registrarse o registrarse).

  • Con la opción predeterminada (usando customername en la URL), cualquier persona (incluidos los competidores) puede ir fácilmente a la misma URL y, de este modo, confirmar que está usando su servicio.

  • Si desean ocultar el hecho de que están usando su servicio, deben usar una URL ofuscada (que esencialmente sería un secreto para ese cliente).

Antes de implementar lo anterior, sería útil averiguar si a sus clientes realmente les importa.

Mi conjetura es que no les importaría mucho y la opción anterior solo sería una fuente de confusión (dependiendo de quién hace el registro real en esa compañía).

Tu objetivo es mantener el proceso lo más simple posible.

Quizás una mejor manera sea establecer el problema potencial en su T & C y el cliente puede solicitar que se le confunda su URL de acceso.

Si les importa la seguridad, leerán los términos.

    
respondido por el Kedar 21.02.2015 - 17:27
fuente

Lea otras preguntas en las etiquetas