一尘不染

JSTL escapeXml为false时如何防止JavaScript注入(XSS)

jsp

我有一个表格,人们可以添加他们的东西。但是,以这种形式,如果他们输入JavaScript而不是仅输入文本,则他们可以轻松地注入他们想要执行的操作。为了防止这种情况,我可以将escapeXml设置为true,但是普通的HTML也会被转义。

<td><c:out value="${item.textValue}" escapeXml="true" /></td>

还有其他方法可以防止JavaScript注入,而不是将其设置为true?


阅读 606

收藏
2020-06-08

共1个答案

一尘不染

您需要将服务器上的HTML文本解析为XML,然后丢弃所有不在严格白名单中的标签和属性。
(并检查URL中的hrefsrc属性)

2020-06-08