【问题标题】:How to correctly handle html tags in textarea如何正确处理 textarea 中的 html 标签
【发布时间】:2011-08-09 18:57:08
【问题描述】:

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

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

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

此类问题通常如何处理?

更新:默认情况下,Asp.net 不允许您在 input/textarea 元素中提交标签。如果我禁用该检查,我就会打开 XSS 漏洞利用的可能性。我想要的只是找到一种正确的方法来转义输入(并分配回元素),然后能够在表单加载后取消转义

【问题讨论】:

  • 这是网络表单还是 MVC?
  • 这取决于您是否希望在内容中包含 HTML。如果是这样,避免他们进入并避免它出来。如果你不想要 HTML,那么在提交给数据库之前把它们去掉。
  • 不要在输入时转义,但在输出时。您可以安全地将文本发送到服务器(正确编码,但在使用“标准”表单 POST 时应该自动完成)并将用户的输入保存在数据库中(当然,要注意 SQL 注入)。在输出文本时将有问题的字符正确转换为 HTML 实体,至少 <>&(也许还有其他)。我无法为您提供答案,因为我根本不习惯 ASP.net。顺便说一句,从不去掉标签,因为你还不如破坏 a<c^2&b>3 之类的东西。
  • @Marcel:a<c^2&b>3有什么危险?
  • 如果你直截了当地去掉<…> 之间的所有内容,你会将该字符串更改为a3

标签: javascript asp.net escaping textarea xss


【解决方案1】:
猜你喜欢
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2015-11-21
  • 2021-07-06
  • 2021-10-12
  • 1970-01-01
相关资源
最近更新 更多