La mia applicazione sta costruendo dinamicamente un URL sorgente e quindi scrive il file di risorse (Excel) direttamente nella risposta. L'URL viene letto da un file delle proprietà, in base all'ambiente dell'applicazione. (Non correlato all'input dell'utente!)
Il nostro strumento di scansione sta segnalando una vulnerabilità XSS su BufferedOutputStream.write()
: "Neutralizzazione impropria dei tag HTML correlati agli script in una pagina Web".
- È un errore valido?
- Se sì, come posso proteggere l'utente da questo?
Credo che i dati di Excel saranno XML, quindi non sarebbe possibile eliminare i tag.
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
HttpSession session = req.getSession();
OutputStream os = res.getOutputStream();
BufferedOutputStream ros = null;
InputStream iStr = null;
BufferedInputStream bistr = null;
res.setContentType(mimeType);
try
{
ros = new BufferedOutputStream(os);
URL location = new URL(resourceName);
URLConnection input = location.openConnection();//remote excel file
int len = input.getContentLength();
res.setContentLength(len);
iStr = input.getInputStream();
bistr = new BufferedInputStream(iStr);
byte[] buffer = new byte[len];
int bytesRead = 0;
while(-1 != (bytesRead = bistr.read(buffer, 0, buffer.length)))
{
ros.write(buffer, 0, bytesRead);
}
}