Ho un'applicazione web (Spring MVC) e ho la convalida dei dati di input per ogni parametro nel controller. Ciò che NON è presente è il controllo della mappa dei parametri accettata Dimensione . i.e Quando il controller prevede 10 parametri e la richiesta ha 11 o 9.
Mi è stato detto che la dimensione dei parametri è importante da controllare per scongiurare eventuali attacchi o Injection i.e security pov, in particolare Parameter Injection. Questo è evidenziato durante la scansione da ZAP dove ZAP aggiunge un nuovo parametro query
a un URL che non ha parametri di richiesta.
Secondo me, il controllo della dimensione può essere saltato a meno che non ci sia un motivo commerciale. L'applicazione ignorerà semplicemente i parametri aggiuntivi e se ci sarà qualcosa di meno che accettabile, la convalida dei dati di input si prenderà cura di esso. Il controllo delle dimensioni non aggiunge un ragionevole vantaggio alla sicurezza.
Il mio ragionamento è che lo sviluppatore può scrivere solo per avere 10 parametri, ma il framework sottostante può aggiungere più parametri. For-ex Spring MVC aggiungerà un parametro (token csrf). E qualsiasi aggiornamento nel framework può introdurre più o meno di questi.
Quindi, domanda, è importante verificare la dimensione della mappa dei parametri quando ogni validazione dei parametri è già in atto? Qual è il vero vantaggio per la sicurezza di questo?