ESAPI.encoder()。canonicalize(查询)无法正常工作

时间:2013-04-16 07:18:59

标签: encoding input owasp esapi

我有一个像这样的输入标签

<input class="textBox" type="text" value="<%=ESAPI.encoder().canonicalize(query) %>" autocomplete="off" />

我尝试使用ESAPI canonicalize函数进行查询,例如"><script>alert(1);</script> 但它不起作用,我在浏览器中得到警报。我做得对吗?

1 个答案:

答案 0 :(得分:1)

您对上下文使用了错误的编码。您处于常规属性上下文中,因此您应该使用encodeForHTMLAttribute

顺便说一句,对于Java,有一种模板语言具有上下文相关的自动转移https://code.google.com/p/hapax2/所以你不必

  1. 手动确定您的上下文
  2. 为该上下文手动选择正确的编码
  3. 编写代码以手动转义,在这种情况下是满口并使模板更难阅读
  4. 这很容易出错并且与手动转义SQL相当,除非更难。