0

我正在使用 linq-to-sql 加载数据并将其保存到数据库。由于要保存或加载的大部分数据都是用户输入,为了避免保存原始数据的所有可能风险,我决定对输入进行 HtmlEncode。这是我所做的总结

  1. 在将输入保存到数据库之前对其进行编码。
  2. 解码输入以便能够操作原始数据。
  3. 重新编码输入以显示给用户。

问题是我必须创建另一个业务对象来将从数据库获得的数据转换为用户输入的实际原始数据,从而使我的 linq 业务对象有些无用。

难道我做错了什么?如果我使用 ling to sql,我真的需要将数据转换到数据库吗?

4

2 回答 2

4

听起来您应该将数据原始存储在数据库中,然后始终在将其显示给用户之前对其进行编码。当您使用 LINQ to SQL 时,您不必担心 SQL 注入,因为它在后台使用参数化查询。

于 2009-07-17T14:35:31.270 回答
1

只需将原始 HTML 存储到您的数据库中,并在公开显示它时使用 HTMLEncode()(或者更好的是,Microsoft 的 Anti-Cross Site Scripting Library 的 HTMLEncode() 方法)。

http://www.microsoft.com/downloads/details.aspx?FamilyId=051ee83c-5ccf-48ed-8463-02f56a6bfc09&displaylang=en

于 2009-07-18T03:53:27.503 回答