跨站脚本:糟糕的验证 JSP

问题描述

我遇到了跨站脚本:我的 JSP 文件验证不佳

<td>${message}</td>

解决方法

在输出之前,您需要使用任何 AntiXSS 库清理来自用户的任何输入,并对 {message} 进行 HTML 编码。这是防止跨站点脚本的良好编码习惯。

我不是 JSP 编码员,但一次简单的搜索使我找到了 this OWASP page。因此,以下语句应该可以完成工作。您需要导入包 org.owasp.Encode

<td>"<%=Encode.forHtml(message)%>"</td>

完成它的更原生的方法是使用 fn:escapeXML 函数。这样,您的代码将如下所示:

<td>{fn:escapeXml(message)}</td>