È attualmente vulnerabile? No .
Dovresti cambiarlo comunque? Probabilmente
Se stai inserendo variabili in una query SQL, dovresti utilizzare le query preparate. Non hanno praticamente alcun impatto sulla tua base di codice e di solito hanno solo un piccolo impatto sulle prestazioni. Di conseguenza, il costo dell'utilizzo di query preparate è ridotto. Ovviamente mi chiederesti "Ma non c'è vulnerabilità qui, quindi perché dovrei prendermi il tempo di cambiarla?". La risposta è semplice: non sai mai come cambierà il tuo codice più tardi
Cosa succede se la direzione della strada decide di lasciare che gli utenti selezionino l'intervallo di date da soli? Un programmatore affrettato aggiorna il metodo getDates
per restituire l'input dall'utente e non esegue alcuna convalida su di esso (il programmatore è di fretta, dopotutto, e non pensa di controllare ovunque e vedere come viene usato il valore di ritorno).
Ora hai una vulnerabilità SQL. Può sembrare un allungamento, ma molte debolezze di sicurezza si verificano a seguito di piccole modifiche incrementali del codice in cui qualcuno che arriva in seguito non ricorda più il contesto completo del codice in questione. Di conseguenza, la mia regola generale è che fino a quando la query preparata è facile da inserire con problemi di prestazioni minimi, quindi utilizzare query preparate per le variabili anche se (al momento) sembra non necessario.
Inoltre, penso che sia meglio avere l'abitudine di usare le query preparate e saltarle solo dopo un'attenta considerazione, piuttosto che abituarsi a saltare le query preparate e solo usando dopo averle attentamente considerazione. L'abitudine successiva genererà molti più problemi di sicurezza.