Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding ESAPI.encoder().canonicalize(查询)工作不正常_Encoding_Input_Owasp_Esapi - Fatal编程技术网

Encoding ESAPI.encoder().canonicalize(查询)工作不正常

Encoding ESAPI.encoder().canonicalize(查询)工作不正常,encoding,input,owasp,esapi,Encoding,Input,Owasp,Esapi,我有一个这样的输入标签 <input class="textBox" type="text" value="<%=ESAPI.encoder().canonicalize(query) %>" autocomplete="off" /> 我尝试使用ESAPI规范化函数进行查询,如警报(1); 但它不起作用,我在浏览器中收到警告。我做得对吗?您对上下文使用了错误的编码。您处于常规属性上下文中,因此应该使用 顺便说一句,对于Java,有一种模板语言具有上下文相关的自动转

我有一个这样的输入标签

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

我尝试使用ESAPI规范化函数进行查询,如警报(1);
但它不起作用,我在浏览器中收到警告。我做得对吗?

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

顺便说一句,对于Java,有一种模板语言具有上下文相关的自动转义,因此您不必这样做

  • 手动确定您所处的环境
  • 为该上下文手动选择正确的编码
  • 编写代码以手动转义,在本例中,这是一种口吃,使模板更难阅读

  • 这很容易出错,与手动转义SQL相比要困难得多。

    我尝试使用ESAPI.encoder().encodeForHTMLAttribute(查询)但我还是在浏览器中收到了警报。@Coder\u sLaY你能看看浏览器视图源的输出吗?嘿,很抱歉是缓存问题。它正在工作。非常感谢。顺便说一句,你会建议我使用hapax2吗?@Coder\u sLaY实际上在看源代码,我认为他们不会忠实地重新实现Google Ctemplate的上下文敏感自动转义因此,没有。很少有模板引擎具有上下文敏感的自动转义。有些引擎具有自动转义,但它不区分上下文,并提供错误的安全感。您可以尝试hapax,看看它是否自动转义,但快速浏览源代码,我找不到它。非常感谢您的建议。非常感谢