使用ColdFusion 8我通常会逃避所有表单输入:
<input id="foo" value="#XMLFormat(trim( form_name.param_name ))#" />
那么隐藏的输入怎么样?这些也应该逃脱吗?我没有尝试过,但我可以很好地在Firebug中输入隐藏的输入,输入任何内容并尝试提交,是吗?
答案 0 :(得分:4)
在这种情况下逃避的目标是保持HTML良好形成,因此 - 隐藏的变量也需要被转义(或编码)。我通常使用urlencodedformat()。考虑如果您在隐藏变量中放置的值是这样的变量会发生什么:
<cfset form.fullname= 'Bob "the tiger" Johnson'/>
<input type="hidden" name="fullname" value="#form.fullname#"/>
输出实际上如下所示:
<input type="hidden" name="fullname" value="Bob "the Tiger" Johnson"/>
这意味着你隐藏的var会以“Bob”的形式出现......剩下的就会丢失。如果字符串的任何部分包含HTML或斜杠或尖括号,情况可能会变得更糟。