如何在不使用<br/>或其他标签的情况下在html中添加换行符

时间:2014-04-04 10:34:51

标签: html web escaping xss

处理html表单时,我需要在将文本字段保存到数据库之前将其附加到文本字段。为了让它更漂亮,我需要在它们之间添加换行符:

userText = userText + "<br>" + appendedText;
# save userText in database

问题是,在提取文本以呈现网页时,为了再次保护XSS,我需要在渲染之前从数据库中转义文本。因此,userText中的<br>呈现为<br>而不是换行符。

所以我想知道是否还有其他方法来生成<br>以外的换行符?

我试过&#34; \ n&#34; &#34; \ r \ n&#34;和&#34; &#34;,它们都不起作用。

此外,附加文本与原始文本位于同一元素中,因此css带有&#39; display:block&#39;是不可能的。

2 个答案:

答案 0 :(得分:1)

使用\n,然后在从数据库中提取数据之后,在输出数据之前,将所有\n替换为<br />。 这样您对XSS仍然是安全的,并且您可以完全控制输出。

答案 1 :(得分:0)

如果您使用javaScript获取表单值,则可以轻松使用"\n"向要保存的值添加新行;

var toSave = FormValue + "\n\n" + "extratext";

演示here