什么时候应该HTML转义数据?什么时候应该URL转义数据?

时间:2010-01-28 02:37:38

标签: html forms escaping

我应该何时在代码中使用HTML转义数据,何时应该进行URL转义?我很困惑哪一个什么时候使用...

例如,给定一个要求URL的元素:

<input type="text" value="DATA" name="URL">

我应该在这里HTML转义DATA还是在网址转义它?

那个元素怎么样:

<a href="URL" title="URL">NAME</a>

URL应该进行网址转义还是HTML转义?那么NAME呢?

谢谢,Boda Cydo。

3 个答案:

答案 0 :(得分:6)

URL编码确保特殊字符如?和&amp;不要导致URL在接收端被误解释。实际上,这意味着您需要对任何有可能包含此类字符的动态查询字符串值进行URL编码。

HTML编码确保特殊字符,例如&gt;并且“不要让浏览器误解标记。因此,您需要对输出到可能包含此类字符的标记中的任何值进行HTML编码。

所以在你的例子中:

  • DATA需要进行HTML编码。
  • 网址的任何动态细分都需要进行网址编码,然后整个字符串需要进行HTML编码。
  • 名称需要进行HTML编码。

答案 1 :(得分:2)

当您向HTML文档中写入任何内容时,HTML Escape。

当你构建一个URL来调用代码内或浏览器来调用时(例如在href标记中),网址就会转义。

在你的例子中,你会想要'属性'来逃避属性。 (我不记得确切的函数名称,但它在HttpUtility)。

答案 2 :(得分:2)

在您显示的示例中,应首先进行网址转义,然后进行HTML转义:

<a href="http://www.example.com?arg1=this%2C+that&amp;arg2=blah">