用法:转义HTML问题

时间:2010-08-19 14:59:03

标签: html escaping

我遇到了一个有趣的问题。

在我们的网页中,用户可以编写自己的描述。我们转义所有文本以便于编写(<3正确显示并且不是标记的开头)。这也避免了尝试注入其javascript代码或隐藏某些内容或使用html执行任何操作时出现的任何问题。

副作用是当用户写

Hi

My name is

显示为

Hi My name is

最初我们(真的我)写了var desc = (SafeHtml)obj.desc.HtmlEscape.replace("\n", "\n<br>")然而这并没有取代任何东西,因为真正发生的是\ n被替换为#&10;因为所有字符&lt; 0x20(&lt; - 我认为)需要在html中表示转义。

所以我的问题是,我做得对吗?我将替换更改为("&#10;", "\n<br/>");。这是正确的方法吗?逃避一切,取代你认为“合法”的角色? ATM我想不出任何其他角色可以逃脱。

1 个答案:

答案 0 :(得分:0)

我就是这样做的 - 逃避一切,然后替换安全的转义序列。也就是说,我认为你不需要替换所有字符&lt; 0x20 - 我在转义步骤中单独留下0x10(换行符)和0x13(回车符),然后用<br />替换它们。虽然没有太大的区别。