2012-06-19 45 views
1

使用ColdFusion 8我通常逃避我所有的表单输入,像这样:隐藏的输入字段必须在ColdFusion中转义吗?

<input id="foo" value="#XMLFormat(trim(form_name.param_name))#" /> 

因此,如何隐藏的投入?这些也应该逃脱吗?我还没有尝试过,但我可以很好地在Firebug中输入隐藏的输入,输入任何内容并尝试提交,我可以吗?

+2

你基本上给你自己的答案与你的Firebug例子:) :) – Veger

+0

谢谢!让它成为答案,所以我可以检查 – frequent

+0

是的,即使它们是隐藏字段,字段名称中的任何HTML元字符都可以“破坏”您的页面。 –

回答

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"/> 

这意味着你的隐藏变种会来通过“鲍勃”...其余的将会丢失。如果字符串的任何部分包含HTML或斜杠或尖括号,情况可能会变得更糟。

+0

那么,如果我的隐藏输入的值为“否”,那么逃离设置值的语法是什么? – frequent

+2

你可以用urlencodedformat()或htmleeditformat()(或xmlformat()也可以工作) - 但它没有影响 - 没有什么会被“逃脱”,因为“no”没有html或编辑问题。 –