表单变量和双引号

Phi*_*enn 2 coldfusion

我正在从数据库填充表单变量.如果字段值中有双引号,例如3英寸3英寸,那么html源代码如下所示:

<input name="width" value="3"">
Run Code Online (Sandbox Code Playgroud)

问:如何处理包含双引号的字段?

我首先认为这是一个cfqueryparam问题,但事实证明这是一个HTML问题.

Pet*_*ton 9

HtmlEditFormat显示值时使用.

像这样:

<input name="width" value="#HtmlEditFormat(Form.Width)#" />
Run Code Online (Sandbox Code Playgroud)


还有:

XmlFormat用于XML输出;
JsStringFormat用于JavaScript输出;
UrlEncodedFormat用于URL内容.

对于更完整/更重要的东西,您可以考虑OWASP的ESAPI - 可以在CF中使用的Java安全API,并提供以下内容:

Context        Method
-------        ------
HTML           esapi.encodeForHTML(variable)
HTML Attribute esapi.encodeForHTMLAttribute(variable)
JavaScript     esapi.encodeForJavaScript(variable)
CSS            esapi.encodeForCSS(variable)
URL            esapi.encodeForURL(variable)
Run Code Online (Sandbox Code Playgroud)

(来自Pete Freitag的cfunited演示幻灯片)