Como programador de ‘nivel intermedio’ que solo trabaja en el backend de la aplicación web de una startup, ¿qué tan preocupado debería estar por las lagunas de seguridad que podría estar creando involuntariamente, incluso si soy capaz de acelerar las cosas rápidamente?

Dependiendo de cómo maneje el dinero, no tiene más remedio que escribir un código seguro. Si maneja tarjetas de crédito, por ejemplo, esto se convertirá en algo con lo que debe estar familiarizado: PCI DSS, PA-DSS, estándares PED, pautas de cumplimiento y más. Si almacena información de tarjeta de crédito (y tarjeta de débito) en sus propias bases de datos, debe cumplir con PCI. De lo contrario, eventualmente descubrirá cómo se sintió Target después de una violación. Confía en mí, no te gustará.

En términos generales, familiarícese con los conceptos del OWASP Top 10: OWASP Top Ten Cheat Sheet. Escriba su código con la idea de que alguien lo penetrará desde afuera y también entrará en su red interna. ¿A qué tendrán acceso si pueden volcar su base de datos? ¿Podría usarse para robar el dinero de alguien y abrirlo a una responsabilidad masiva?

¿Qué tan preocupado deberías estar? Aterrorizado. Hasta el punto de estar enfermo del estómago aterrorizado. Como primer proyecto real, le recomiendo encarecidamente que traiga una firma de análisis de seguridad de terceros para analizar y buscar vulnerabilidades en su base de código. No tiene la experiencia para evaluar todos los posibles vectores de ataque contra su código.

La codificación segura lo retrasará. Puede cambiar la arquitectura de su aplicación. Y no es solo código. También afecta las prácticas comerciales y la forma en que transmite información. No importa si escribe un código seguro o mitiga las amenazas si algún administrador deja una hoja de cálculo de Excel en una unidad de red no segura que contiene toda la información financiera de su cliente porque era más fácil generar un informe de esa manera.

Descargo de responsabilidad: trabajo en finanzas. La banca de consumo y este tipo de problemas son los que enfrento a diario.

Aterrorizado. Agazapado en un rincón, temblando y llorando.

La respuesta de Matt es excelente. Aprende lo que puedas sobre cómo lidiar con eso. Lo curioso de esa lista es que la inyección ha sido el mayor problema durante años y sigue siéndolo.

Obtenga algunos libros sobre pruebas de penetración (Me gusta The Basics of Hacking and Penetration Testing) y siga el blog de Troy Hunt. Tenga todo eso en mente mientras escribe su código, y haga lo que pueda por su cuenta para una primera ronda de pruebas.

Pero al final, no podrá encontrar todas las vulnerabilidades. El consejo de Matt de que una empresa externa lo revise es sólido. Sí, costará, pero el precio de NO hacerlo y ser hackeado es mucho mayor, lo que puede ser devastador para un negocio incipiente. Cualquiera sea el costo, es un buen seguro si la compañía quiere tener un futuro.

Quora User hizo una buena respuesta.

Además de eso, me gustaría decir que debes tratar de delegar cosas sensibles a la seguridad a alguien, que es bastante bueno en eso.


Si desea manejar el pago con tarjeta de crédito. Usa stripe.com

Si desea manejar la autorización del usuario: use oauth.net

Y. Debe desinfectar / escapar de cada entrada del usuario. Echa un vistazo a http://json-schema.org/

Eso es.
Espero eso ayude.

.

Cuando escriba código, asegúrese siempre de que lo que sale de sus pulsaciones de teclado sea seguro. Para eso están las pruebas. De lo que puedes estar seguro es que las lagunas no son tu culpa. Después de reunir todos los bloques de código, pruebe todo de nuevo. Usted, como equipo, está haciendo algo que la gente usará, así que asegúrese de que sea seguro.

Me refiero a que podría usar PayPal para manejar los pagos, pero aun así, ¿qué pasaría si alguien pudiera encontrar una forma de acreditar incorrectamente dólares a un proyecto (con SQL o una actualización de la página o lo que sea que tenga), y luego lo tiene configurado automáticamente hasta entonces retirar ese dinero a un usuario. Ahora la gente básicamente puede robarte cualquier cantidad de dinero. Cosas aterradoras Tendría mucho cuidado como el infierno.