我有一个表格,人们可以添加他们的东西。但是,以这种形式,如果他们输入JavaScript而不是仅输入文本,则他们可以轻松地注入他们想要执行的操作。为了防止这种情况,我可以将escapeXml设置为true,但是普通的HTML也会被转义。
<td><c:out value="${item.textValue}" escapeXml="true" /></td>
还有其他方法可以防止JavaScript注入,而不是将其设置为true?
您需要将服务器上的HTML文本解析为XML,然后丢弃所有不在严格白名单中的标签和属性。 (并检查URL中的href和src属性)
href
src