Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)
Overview
XSS allows attacker-controlled script to run in another user’s browser.
Impact
Reflected XSS returns injected script immediately, while stored XSS persists malicious content on the server.
Countermeasures
Encode output by context, validate input, avoid unsafe DOM APIs, and apply security headers such as Content-Security-Policy.
Examples
<tr>
<td colspan="2">${contents}</td>
</tr>
<tr>
<td colspan="2"><c:out value="${contents}"/></td>
</tr>
String param = request.getParameter("Param");
param = param.replaceAll("<script>", "");
param = param.replaceAll("</script>", "");
<c:out value="${param}" escapeXml="false"></c:out>