Come prevenire l'XSS riflesso con Java Struts Framework? [chiuso]

1

Ho un'applicazione che viene eseguita sotto il server Jboss. Ho davanti un server Apache. La mia applicazione contiene una vulnerabilità di sicurezza (XSS Cross-site scripting).

Volevo sapere che dovevo apportare modifiche al codice (HTML, JavaScript, Java, ..) ..?

Come posso proteggere la mia domanda? faccio a configurare js framework per proteggerlo?

Che tipo di vulnerabilità XSS è?

  • riflessa

Come viene introdotto e qual è il contesto?

  • Introdotto da modifica il mio URL

Quali framework Java stai usando?

Struts 1

XSS viene eseguito dal codice HTML, che è stato introdotto da una terza parte e viene eseguito dall'applicazione. Nell'esempio seguente per chiamare è stato aggiunto un avviso postscript (1). È stato creato dal lato dell'applicazione.

    
posta Mercer 22.02.2016 - 15:27
fonte

2 risposte

2

Per quanto ho capito, hai un XSS riflesso su una pagina JSP (la domanda non specifica appieno quale tecnologia, ma JSP è una buona scommessa se usi Struts 1)

Probabilmente la tua soluzione racchiude probabilmente i dati potenzialmente pericolosi con lo standard

<c:out value="${dangerousData}" /> 

tag, che sfugge al contenuto XML (e quindi elimina il tuo spiacevole XSS)

Inoltre, lo standard

${fn:escapeXml}
La funzione

fornisce una sicurezza equivalente.

Devi usare quello giusto a seconda di come usi effettivamente i dati. Se si visualizzano semplicemente i dati, utilizzare c:out .

====== Aggiornamento dopo il commento dell'OP =====

Questa soluzione funziona. Facciamo un esempio: si ha un JSP con la seguente riga, che è soggetta a XSS:

<p>Hello, dear ${username}</p>

la variabile ${username} viene sostituita dal contenuto del parametro username in una richiesta (tipico XSS riflesso).

Quindi la richiesta www.yoursite.com/somepage?username=<script>alert('XSS');</script>

proverebbe in effetti l'efficacia dell'XSS, con una casella di avviso che scoppia come prova del concetto.

Se sostituisci il tuo codice con il seguente (come descritto nella soluzione):

<p>Hello, dear <c:out value="${username}" /></p>

, il <script>alert('XSS');</script> verrebbe visualizzato nella pagina e non verrebbe eseguito, rendendo quindi gli utenti sicuri.

Questa è la best practice quando si ha a che fare con XSS date le scelte tecnologiche.

    
risposta data 22.02.2016 - 16:27
fonte
1

Potresti esaminare: link per avere un'idea generale su quali cose causano l'XSS. Forse la regola n. 5 potrebbe essere ciò che vuoi considerare. Anche il progetto OWASP Secure code ha un paio di esempi su Struts: link (la versione 1 è scaricabile gratuitamente).

    
risposta data 22.02.2016 - 16:35
fonte

Leggi altre domande sui tag