¿Seguridad por diseño basada en un marco existente o un diseño personalizado?

3

Personalmente hago la mayor parte del desarrollo en PHP (el lenguaje de programación no importa para esta pregunta). Los frameworks PHP populares a lo largo de los desarrolladores son, por ejemplo:

  1. CodeIgniter
  2. Laravel
  3. Symfony

A partir de estos tres marcos, sé más sobre CodeIgniter y, en general, creo que proporcionan a los desarrolladores una buena biblioteca de entrada y preste especial atención a la security . También tienen un programa de seguridad para que los investigadores informen sobre las vulnerabilidades en el marco para corregirlas. Descargo de responsabilidad: también estoy contribuyendo al marco CodeIgniter y su programa de seguridad.

Mi pregunta general es: ¿es mejor confiar en un marco existente para desarrollar una aplicación con el fin de extender una estructura básica de seguridad por diseño? ¿O es más seguro comenzar desde cero y desarrollar todo usted mismo?

En otras palabras: teniendo en cuenta la seguridad por diseño, ¿es más seguro comenzar a desarrollar una aplicación basada en un marco de aplicación existente o comenzar desde cero con un diseño de compilación personalizado?

Por no hablar de que los desarrolladores, por supuesto, necesitan usar las funciones del marco de trabajo correctamente para beneficiarse de ellas. Lo mismo se aplica a las funciones / características de construcción personalizadas.

    
pregunta Bob Ortiz 03.08.2016 - 13:49
fuente

1 respuesta

4

Si tuviera que iniciar un marco desde cero, tendría que catalogar y abordar una amplia gama de posibles vulnerabilidades, desde el saneamiento de entradas hasta las explotaciones entre sitios, desde la autenticación (y el hashing, el salazón, la recuperación de contraseñas y posiblemente el cifrado de datos). ) al control de acceso a los recursos.

Lo que quiero decir es que estas son cosas que necesitarías hacer en abstracto, antes de comenzar el desarrollo. Entonces, ¿qué hay de hacerlas en el resumen, y luego aplicarlas a un marco existente ?

Esto tendría varias ventajas:

  • mayor base de desarrolladores. Dados suficientes ojos, la mayoría de los errores son superficiales (incluso si eventos como la tormenta SSL han empañado ese concepto).
  • ya- (en gran medida) - base de código auditado.
  • un marco concreto y definido al que aplicar los diversos conceptos y problemas de seguridad, cortocircuitando todo el ciclo de diseño-simulación-construcción-prueba.
  • mayor base de creatividad : por muy brillante que seas, tú y los demás siempre pensarás en más posibilidades que tú solo. Cuando hagas la lista de cosas que debes hacer y estar atento, esta será una ayuda invaluable.
  • el resto del código ya está allí. Usted se enfocó en la seguridad, pero el resto de las características y funcionalidades ya se han desarrollado.
  • también, el resto del código probablemente proporcionará algunos requisitos solo por estar ahí, cosas que el marco debe poder hacer. ¿Qué pasaría si diseñara un sistema espléndido y bien asegurado que luego resultó ser incapaz (o solo con gran dificultad y parches) para realizar alguna función clave que al principio se había pasado por alto?

Usted tiene la desventaja de no poder diseñar todo el marco desde cero, lo que podría generar algunos problemas propios.

Pero al menos para empezar, comenzaría con un examen exhaustivo del enfoque de seguridad en un marco existente. Y obtienes un montón de buen karma con los chicos de tu framework elegido; Desde el punto de vista de la carrera, es mucho más probable que conozca un empleador potencial que requiera experiencia con un marco conocido.

    
respondido por el LSerni 03.08.2016 - 14:45
fuente

Lea otras preguntas en las etiquetas