¿Es actualmente vulnerable? No .
¿Deberías cambiarlo de todos modos? Probablemente
Si está colocando variables en una consulta SQL, debería usar consultas preparadas. Casi no tienen impacto en su base de código y, por lo general, solo tienen un impacto mínimo en el rendimiento. Como resultado, el costo de utilizar consultas preparadas es pequeño. Obviamente, usted preguntaría "Pero aquí no hay vulnerabilidad, ¿por qué debería tomarme el tiempo para cambiarla?". La respuesta es simple: nunca sabes cómo cambiará tu código más adelante
¿Qué sucede si la administración en el camino decide que quieren permitir que los usuarios seleccionen ellos mismos el intervalo de fechas? Un programador apresurado actualiza el método getDates
para devolver la entrada del usuario y no realiza ninguna validación en él (después de todo, el programador tiene prisa y no piensa revisar en todas partes y ver cómo se usa el valor de retorno).
Ahora tienes una vulnerabilidad de SQL. Puede parecer un tramo, pero muchas debilidades de seguridad ocurren como resultado de pequeños cambios de código incrementales en los que alguien que llega más tarde ya no recuerda el contexto completo del código en cuestión. Como resultado, mi regla de oro es que siempre que la consulta preparada sea fácil de colocar con problemas de rendimiento mínimos, utilice las consultas preparadas para sus variables incluso si (actualmente) parece innecesario.
Además, creo que es mejor tener el hábito de usar consultas preparadas y solo omitirlas luego de una cuidadosa consideración, en lugar de tener la costumbre de omitir consultas preparadas y solo usarlas después de cuidadosas consideración. El hábito posterior generará muchos más problemas de seguridad.