我有一个像这样的输入标签
<input class="textBox" type="text" value="<%=ESAPI.encoder().canonicalize(query) %>" autocomplete="off" />
我尝试使用ESAPI canonicalize函数进行查询,例如"><script>alert(1);</script>
但它不起作用,我在浏览器中得到警报。我做得对吗?
答案 0 :(得分:1)
您对上下文使用了错误的编码。您处于常规属性上下文中,因此您应该使用encodeForHTMLAttribute
。
顺便说一句,对于Java,有一种模板语言具有上下文相关的自动转移https://code.google.com/p/hapax2/所以你不必
这很容易出错并且与手动转义SQL相当,除非更难。