È difficile rispondere alla tua domanda sull'opportunità o meno di disabilitare la convalida senza conoscere le circostanze esatte, ma farei attenzione a disabilitarla se non esegui personalmente una validazione approfondita del componente del percorso.
Il punto interrogativo e la e commerciale potrebbero essere pericolosi perché sono usati per passare i parametri a un'applicazione su un URL. La e commerciale è anche un problema perché le entità html possono essere codificate con esso ( ä
produce 'ä'). Questo non è un problema in un URL, ma se ottieni la codifica / decodifica leggermente errata e inserisci una variabile get che li contiene nel tuo html di pagina, potresti consentire a un utente malintenzionato di includere pericolosi tag html come il tag script, iframe ecc. Il carattere percentuale è un problema perché è usato per codificare caratteri speciali negli URL. E naturalmente il < e > sono un problema perché questi sono usati per i tag HTML.
Se la tua applicazione fornisce un modo per accettare il percorso della richiesta (o il contenuto del corpo) con questi personaggi da chiunque, qualcuno potrebbe pensare a un modo per utilizzarli per indurre la tua applicazione a fare qualcosa di non voluto.
Ad esempio, se non hai convalidato il percorso della richiesta e la tua applicazione ha inserito il valore della variabile "titolo" nella tua pagina se era presente, questo sarebbe innocuo quando qualcuno ha richiesto un url come http://www.example.com/profile?user=johndoe&title=John
, ma qualcun altro potrebbe utilizzare http://www.example.com/profile?user=johndoe&title=<script>really bad script here<script>
(probabilmente codificando il valore del titolo usando la codifica in percentuale url) e fare in modo che il suo script venga eseguito nel contesto della pagina.
Sarebbe anche peggio se tu memorizzassi il valore della variabile title in un database e in seguito lo mostrassi a tutti gli utenti che volevano vedere il profilo di john doe, perché questo avrebbe eseguito lo script ogni volta chiunque ha guardato il profilo di John Doe. Lo script potrebbe quindi rubare i cookie di questi utenti o fare qualcosa di veramente orribile e malvagio a loro. :-) L'esempio è un po 'inverosimile, ma il problema di base non lo è.