Javascript 如何正确处理textarea中的html标记

Javascript 如何正确处理textarea中的html标记,javascript,asp.net,escaping,textarea,xss,Javascript,Asp.net,Escaping,Textarea,Xss,我有一个带有textarea元素的asp.net表单(成员配置文件-目标字段的一部分)。我不介意用户在其中输入html标记,但出于安全原因(),asp.net不允许在文本框中提交html标记,这是很好的。因此,我看到了两个选项—在提交表单之前,将html标记从textarea的值中完全剥离,或者在提交到服务器之前,将textarea的值转义,将替换为和 换句话说,如果有人在文本区域键入以下内容: 我想以某种方式将它保存在服务器上,并在下次用户在该页面上键入时向用户显示它 这样的问题通常是如何处

我有一个带有textarea元素的asp.net表单(成员配置文件-目标字段的一部分)。我不介意用户在其中输入html标记,但出于安全原因(),asp.net不允许在文本框中提交html标记,这是很好的。因此,我看到了两个选项—在提交表单之前,将html标记从textarea的值中完全剥离,或者在提交到服务器之前,将textarea的值转义,将
替换为

换句话说,如果有人在文本区域键入以下内容:

我想以某种方式将它保存在服务器上,并在下次用户在该页面上键入时向用户显示它

这样的问题通常是如何处理的


更新:默认情况下,Asp.net不允许您在input/textarea元素中提交标记。如果我禁用该检查,我就有可能利用XSS进行攻击。我只想找到一种正确的方法来转义输入(并分配回元素),然后能够在表单加载后取消转义它。通常的方法是客户端和服务器端验证:


通常的方法是客户端和服务器端验证:


这是webforms还是MVC?这取决于内容中是否需要HTML。如果是这样的话,让他们进去,然后把它出来。如果你不想要HTML,那么在提交到DB之前就把它们去掉。不要在输入时转义,而是在输出时转义。您可以安全地将文本发送到服务器(正确编码,但在使用“标准”表单帖子时应自动完成),并将用户的输入保存到数据库中(当然,要注意SQL注入)。在输出文本时正确地将有问题的字符转换为HTML实体,至少是
&
(可能还有其他字符)。我不能给你一个答案,因为我根本不习惯ASP.net。顺便说一句,永远不要去掉标签,因为你可能会弄坏像
a3
@Marcel:a3的危险是什么?如果你直截了当地去掉
之间的所有内容,你会将该字符串改为
a3
。这是webforms还是MVC?这取决于你的内容中是否需要HTML。如果是这样的话,让他们进去,然后把它出来。如果你不想要HTML,那么在提交到DB之前就把它们去掉。不要在输入时转义,而是在输出时转义。您可以安全地将文本发送到服务器(正确编码,但在使用“标准”表单帖子时应自动完成),并将用户的输入保存到数据库中(当然,要注意SQL注入)。在输出文本时正确地将有问题的字符转换为HTML实体,至少是
&
(可能还有其他字符)。我不能给你一个答案,因为我根本不习惯ASP.net。顺便说一句,永远不要去掉标签,因为你可能会弄坏像
a3
@Marcel:a3的危险是什么?如果你直接去掉
之间的所有东西,你会把这个字符串改成
a3