Llevo más de 20 años desarrollando software. Durante ese tiempo, he trabajado en compañías de Fortune 100 que tenían requisitos de seguridad muy específicos desarrollados por profesionales de seguridad dedicados y compañías pequeñas sin ningún concepto de requisitos de seguridad.
Me parece que muy a menudo, incluso en la mayoría de los casos, la política de seguridad de facto termina siendo creada casi incidentalmente por los programadores y se integra estrechamente en el producto terminado. La mayoría de las empresas parecen simplemente comprar algo y usar las reglas predeterminadas / codificadas sin más consideración.
Mi pregunta es, en un mundo perfecto, ¿cuál debería ser el rol de un desarrollador de aplicaciones empresariales en la determinación de la política de seguridad para su software? ¿Debería un producto implementar una "mejor práctica" o enfocarse en ser configurable y permitir que la empresa / organización consumidora determine su propia política?
(Estoy hablando de cosas como si y cuando se requiere una autenticación de dos factores, los requisitos de complejidad de las contraseñas y el tiempo de espera y cuántas contraseñas malas se pueden ingresar antes de un bloqueo).
EDITAR:
Bien, solo para reiterar, no estoy hablando de vulnerabilidades reales como XSS o inyección de SQL, sino de políticas. Supongamos que, por ejemplo, no supiera cuánto tiempo debía tener una contraseña para estar lo suficientemente seguro para mi contexto y solo tengo unas pocas horas para trabajar con el código de longitud mínima de la contraseña. ¿Es mejor investigar cuánto tiempo es suficiente y codificar mi decisión o escribir un código que permita que el administrador la personalice?