トップ回答者
HtmlEncodeの使うタイミングについて

質問
-
お世話になっております。
ユーザの入力したデータをDBに登録するにあたって、DBにはユーザの入力したとおりに保存するのがよいのでしょうか?
現在私はHtmlEncodeしたものをDBに保存していますが、これだと、例えば何かの一覧を表示するときに文字数制限をして、長すぎる場合はストアドの方で途中で切って、後ろに「...」をつけてクライアントに返しているのですが、エンコードされた文字の途中で切られたりすると表示がおかしくなります。
みなさんは、このあたりの処理のHtmlEncodeのタイミングなどどのようにしていらっしゃいますでしょうか。
宜しくお願い致します。
回答
-
特別な場合を除き、一般的には生データのまま、つまりHtmlEncodeせずにデータベースに保存するのが普通でしょう。理由は他のシステムとのやり取りや、同じデータを異なるアプリケーションで見るときに都合が良いからです。例えば、Excelに取り込んで処理を行ったり、Windows FormアプリケーションやWPFアプリケーションで同じデータを扱ったりできるからです。また、書かれている通り、そのデータの取り扱いが難しくなります。途中で切ったり、検索をする場合などは特にです。
データベースに格納する前にユーザーが入力した文字列を直ぐにHtmlEncodeする必要もありますし、特別な事情がない限りは必要に迫られた時にその都度行えば良いと思います。少なくとも、生データでデータベースに保存する以上に問題が発生することは無いでしょう。
すべての返信
-
特別な場合を除き、一般的には生データのまま、つまりHtmlEncodeせずにデータベースに保存するのが普通でしょう。理由は他のシステムとのやり取りや、同じデータを異なるアプリケーションで見るときに都合が良いからです。例えば、Excelに取り込んで処理を行ったり、Windows FormアプリケーションやWPFアプリケーションで同じデータを扱ったりできるからです。また、書かれている通り、そのデータの取り扱いが難しくなります。途中で切ったり、検索をする場合などは特にです。
データベースに格納する前にユーザーが入力した文字列を直ぐにHtmlEncodeする必要もありますし、特別な事情がない限りは必要に迫られた時にその都度行えば良いと思います。少なくとも、生データでデータベースに保存する以上に問題が発生することは無いでしょう。