La mia applicazione Spring Web MVC esistente ha il seguente gestore di gestori nel controller.Spring MVC application filtering HTML in URL - Si tratta di un problema di sicurezza?
@RequestMapping(method = RequestMethod.GET, value = "/welcome")
Attivo la seguente richiesta http://www.example.com/welcome
e funziona correttamente.
Il problema è
http://www.example.com/welcome.check.blah
funziona anche !!!
Inoltre, un URL di richiesta HTTP GET all'applicazione con tag di script viene visualizzato nuovamente anche se non riesce l'autorizzazione.
L'esempio http://www.example.com/welcome<script>alert("hi")</script>
viene visualizzato di nuovo come tale nella finestra del browser e come risultato della mia logica di autorizzazione viene visualizzato il messaggio "Non autorizzato".
Mi chiedo se questo è un problema di sicurezza e dovrei aver bisogno di fare qualsiasi codifica/filtro nel codice?
Grazie per aver segnalato il useuffixPatternMatch. Ci proveremo. Avete degli input sull'altro punto? È un problema di sicurezza? impediamo al browser di visualizzare nuovamente l'URL come inserito? – Raghav
L'ho testato e sì l'URL è stato nuovamente visualizzato ma il tag
Quando si utilizza Primavera di richiedere una mappatura di quel tipo (vale a dire "/ niente") Primavera in realtà mappe controller per diversi URL:
/ammessi
/welcome.*
/welcome/
per evitare questo - o essere più specifico quando si RequestMapping (cioè /welcome.htm), o manualmente mappa l'URL della periferica nella Xml config:
Cheers, Pete
fonte
2012-03-13 16:52:16 Petey22uk
Grazie per la risposta. Ma sto già usando la mappatura del gestore delle richieste basata su annotazioni e non posso usare il suffisso ".htm" :( – Raghav
È anche possibile limitare questo in web.xml menzionando il modello URL. Invece di dare "/ ", puoi menzionare "/ .htm" nel tuo web.xml.
Qualcosa di simile
fonte
2012-03-13 17:37:02 raddykrish
Purtroppo, non posso farlo. è disponibile nel formato "/ welcome? key = value" e non "/welcome.html" .Questo è stato fatto per mascherare la tecnologia sottostante. – Raghav
Ohh ok..accettabile ... ma a me non rivela nulla tecnologia sottostante piuttosto specifica il modello di URL però ... – raddykrish
È possibile utilizzare la proprietà useDefaultSuffixPattern.
riferiscono anche URL Pattern Restricting in SPRING MVC
fonte
2012-06-04 18:16:28 schhajed
In attuale configurazione di Spring Java, c'è un modo un po 'più facile da configurare la stessa cosa:
fonte
2017-08-31 08:44:24
Grazie per la risposta aggiornata! –