È possibile utilizzare JSTL core:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Usa <c:out value="${someString}"/>
tag per visualizzare le stringhe. <c:out>
fugge i caratteri HTML in modo da poter evitare lo scripting cross-site, è possibile specificarlo impostando l'attributo escapeXml=true
. Un altro vantaggio è che è anche possibile fornire un valore predefinito nel caso in cui lo value
valuti su null
.
È inoltre possibile utilizzare la funzione fn:escapeXml()
EL. È necessario includere JSTL functions per quello.
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Un altro modo possibile, verrà creato un numero personalizzato ELResolver.
Abilita la personalizzazione del comportamento di risoluzione delle proprietà e delle variabili per la valutazione delle espressioni EL.
This blog fornisce un esempio funzionante di come può essere fatto.
Per tutta la Spring MVC app, è possibile specificare la fuga nel web.xml:
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
Ma poi la fuga si applica solo ai spring
tag, come:
<form:input path="formField" htmlEscape="true" />
Infine, è possibile provare la libreria di terze parti XSSFilter.
Are u desidera eseguire il tag o rimuovi i tag? – newuser
Possibile duplicato: http: //stackoverflow.com/questions/4948532/where-should-i-escape-html-strings-jsp-page-or-servlets –
@newuser Voglio scappare, quindi l'utente vede '< script' come testo nella pagina. –