クロスサイトスクリプティング (XSS)
クロスサイトスクリプティング (XSS)
概要
XSSは、攻撃者が制御するスクリプトを他の利用者のブラウザで実行させる脆弱性です。
影響
Reflected XSSは注入されたスクリプトを即時に返し、Stored XSSは悪意ある内容をサーバーに保存します。
対策
出力を文脈に応じてエンコードし、入力を検証し、危険なDOM APIを避け、Content-Security-Policyなどのヘッダーを適用します。
例
<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>