No estoy seguro de qué significa exactamente una aplicación moderna. Sí, muchos marcos, ORM, Entity Framework, etc. descomponen las consultas y pueden aplicar algún filtrado predeterminado. Sin embargo, en escenarios más complejos que requieren codificación personalizada, o donde el ORM o las funciones de la biblioteca no hacen exactamente lo que desea, abrirá la puerta a la inyección de SQL u otros ataques.
Con una gran cantidad de ORM y marcos, la parte de seguridad está integrada. Esto tiene el impacto de atender automáticamente algunos problemas de seguridad, pero al mismo tiempo, muchos desarrolladores pueden no entender qué hacen estas funciones de biblioteca por ellos. y cuando necesitan crear una solución a medida, solo siguen un tutorial y no saben que deben tener en cuenta la seguridad.
Además, cuando se sale de las aplicaciones básicas de tipo CRUD de usuario final, es posible que los desarrolladores necesiten usar bibliotecas que no tengan un buen mantenimiento. Por ejemplo, supongamos que tiene una aplicación de negocios donde alguien puede cargar un archivo CSV
y eso se está procesando. Tal vez alguien escribió una biblioteca para manejar esto y no usó el ORM, funciona así que sus desarrolladores lo aceptan. Luego, el CSV se lee línea por línea y se procesa en la base de datos; aquí puede ser posible la inyección de SQL.
La inyección SQL es un síntoma de una falta de validación de entrada adecuada, la probabilidad de que esto aumente en escenarios menos comunes o más complejos en los que no puede integrarse o es un pensamiento posterior. / p>
Además, las aplicaciones "modernas" pueden parecer modernas, pero se basan en una vieja chatarra o en algunas conexiones heredadas extrañas que se salen de lo esperado.