¿Cuál es su consejo sobre seguridad para un programador de arranque SaaS?

  • No solo permita SSL; no permitir no SSL. Fuera de https, todos los datos de autenticación y autorización son esencialmente completamente públicos (si no conoce la diferencia entre autenticación y autorización, definitivamente necesita leer sobre seguridad).
  • Nunca muestre rastros de pila, mensajes de error de la base de datos, etc. al público. Si los incluye durante la depuración, diseñe en un “modo de depuración” para esto, que está desactivado de forma predeterminada. Idealmente, el usuario final ni siquiera debería poder decir en qué idioma / s está escrita su aplicación.
  • Si tiene una API, dele un diseño claro de arriba hacia abajo para que no crezca de manera orgánica y desordenada con el tiempo, lo que hace que sea más difícil detectar los problemas de seguridad que aparecerán más adelante. Si usa REST como patrón de diseño, úselo de manera adecuada y consistente.
  • Mantenga un número de versión claro para cada versión de su software, tal como lo ha hecho el software de escritorio compilado. Le ayuda a identificar exactamente cuándo surgió un problema. También puede usarlo para no permitir conexiones de personas que todavía usan una versión anterior si se descubre un problema de seguridad, lo que los obliga a actualizar.
  • Incluya un “interruptor de apagado” para que pueda bloquear instantáneamente a todos los usuarios si descubre un problema de seguridad grave. Diseñe en un mensaje de error fácil de usar que los usuarios verán si habilita esto (no solo un error 500 del servidor).

Finalmente: considere no obligar a sus usuarios a elegir una contraseña, que la mayoría de ellos establecerá para ser la misma que en cualquier otro sitio. Simplemente deles una cookie y, si desean iniciar sesión desde un dispositivo diferente, envíeles un enlace por correo electrónico para iniciar sesión y obtener otra cookie. Esto es 2015 y prácticamente todos tienen su propio dispositivo.

El requisito básico es protección / seguridad de datos, estabilidad y recuperación ante desastres. Simplemente hablar SSL es un requisito DEBE. Depende de su arquitectura, también debe proteger la base de datos y la aplicación web mediante firewall y conexión segura.

Para la estabilidad, debe considerar el uso de una plataforma en la nube estable (como AWS, Google o SogtLayer) para evitar el tiempo de inactividad y fácilmente escalable. Normalmente, la mayoría de la plataforma en la nube tendrá servicio de respaldo y restauración.

Si su sistema se rompe mientras es un inicio, probablemente no sobrevivirá, así que tenga cuidado. Y el 90% de las infracciones son trabajos internos o se desencadenan por estupidez interna.

Rick Chapman
Editor y editor gerente, Softletter
Autor: Vender el hígado de Steve Jobs. Una historia de startups, innovación y conectividad en las nubes ”
“En busca de la estupidez: más de 20 años de desastres de marketing de alta tecnología”
“SaaS Entrepreneur: la guía definitiva para tener éxito en su negocio de aplicaciones en la nube”

No ejecute nada más en el servidor que ejecuta su aplicación SaaS. Coloque su sitio web, WordPress, todo lo demás en una máquina diferente.

Lea sobre la inyección SQL y cómo puede asegurarse de que no es el próximo Blue Cross. Ver Exploits of a Mom, también conocido como Bobby Tables.

No reinvente la seguridad de la contraseña. Utilice un método o biblioteca comprobado y existente. Y por el amor de Dios, ¡no almacene contraseñas en texto plano!

Asegúrese de tener copias de seguridad diarias y de que se prueben regularmente para que pueda retroceder un día si ocurre una catástrofe en lugar de intentar unir manualmente todo o perderlo todo.

Arvingas, tienes una respuesta excelente y detallada de Jon. Lo elogio y no puedo agregarle nada.

Los mejores deseos.

More Interesting

¿Cuáles son los consejos para un nuevo trabajo de software y qué habilidades lo ayudarán a tener una curva profesional brillante?

Me estoy mudando al área metropolitana de Toronto para oportunidades de desarrollo de software, ¿qué debo tener en cuenta?

¿Estás contento con tu carrera profesional? ¿Por qué o por qué no?

Tengo buenas habilidades de programación, pero nunca trabajé en una empresa de software. ¿Cómo me convierto en un candidato competitivo para trabajos geniales de software?

¿Puede un estudiante internacional de doctorado en física teórica de primer año que estudie en los EE. UU. Hacer una pasantía de ingeniería de software de 2-3 meses?

Como ingeniero de software, tengo la opción de elegir Singapur, Amsterdam o San Francisco. A la luz de los recientes acontecimientos en los Estados Unidos y con el presidente Trump en mente, ¿sigue siendo San Francisco la mejor opción?

¿Qué juzga Quora en un ingeniero de software antes de contratarlos?

Tengo 11 años de experiencia como consultor de TI en India. mi experiencia en el sitio es de solo 3 meses en general. ¿Es una pena para un aspirante a profesional en la industria de TI?

¿Qué trabajo es mejor: ingeniero de software (Java) o asistente en el Reserve Bank of India?

¿Qué puedo hacer en un período de tiempo de 3 meses que pueda ayudarme a mejorar mis habilidades como ingeniero de software para poder construir una base sólida para mi carrera?

Cómo conseguir un trabajo como ingeniero de software

¿Por qué a los ingenieros de software les encanta viajar solos y explorar la naturaleza?

¿Es incorrecto dejar de preocuparse por la clase y comenzar a educarse (libros, Internet, etc.) para cumplir su sueño?

¿Por qué me da vergüenza decir que quiero ser ingeniero de software / programador de juegos?

¿Qué tipo de trabajos existen en Google para las personas con 20 años de experiencia en desarrollo de software en diversas tecnologías como .Net, sql, BI, ETL, etc.?