保存HTML的最佳实践决策?

时间:2012-02-15 20:00:06

标签: jquery asp.net html post special-characters

我有一个客户端/服务器应用程序(asp.net),它有一个textarea,用户在html elements + text中键入。

从客户端发送到服务器的数据是通过jQuery ajax POST。 (到ashx

让客户输入:

<b> Hello </b> 

所以我:

1)encodeUriComponent全文。

2)Html Encode特殊字符(如&gt; &lt;

3)将其发送到服务器

4)保存在DB中。

问题:

在db中保存的首选方法是什么?

使用&gt; &lt;?或者我应该解码然后保存它?

(数据应该呈现给用户,将来的某个时间......)

2 个答案:

答案 0 :(得分:0)

您可以将其保存到数据库raw,但我强烈建议您使用某种解析来清理输入。你需要清理非标准的html,以及javascript等的任何尝试。否则这是一个巨大的安全风险。你可以在这里使用html tidy .net包装器。

http://markbeaton.com/SoftwareInfo.aspx?ID=81a0ecd0-c41c-48da-8a39-f10c8aa3f931

答案 1 :(得分:0)

  1. 将原始HTML输入发布到您想要的操作
  2. 在模型的所需字段上使用[AllowHtml]属性。
  3. 使用Microsoft's Anti-XSS库删除任何javascript等(除非是这样)。
  4. 将原始HTML保存到数据库中,但请务必使用参数化查询来防止注入攻击。
  5. 停止HTML编码所有内容。它看起来很糟糕。