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のクロスサイトスクリプティングライブラリのHTMLEncode()メソッド)を使用するだけです。

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

于 2009-07-18T03:53:27.503 に答える