none
HtmlEncodeの使うタイミングについて RRS feed

  • 質問

  • お世話になっております。

     

    ユーザの入力したデータをDBに登録するにあたって、DBにはユーザの入力したとおりに保存するのがよいのでしょうか?

    現在私はHtmlEncodeしたものをDBに保存していますが、これだと、例えば何かの一覧を表示するときに文字数制限をして、長すぎる場合はストアドの方で途中で切って、後ろに「...」をつけてクライアントに返しているのですが、エンコードされた文字の途中で切られたりすると表示がおかしくなります。

     

    みなさんは、このあたりの処理のHtmlEncodeのタイミングなどどのようにしていらっしゃいますでしょうか。

    宜しくお願い致します。

    2008年9月19日 10:58

回答

  • 特別な場合を除き、一般的には生データのまま、つまりHtmlEncodeせずにデータベースに保存するのが普通でしょう。理由は他のシステムとのやり取りや、同じデータを異なるアプリケーションで見るときに都合が良いからです。例えば、Excelに取り込んで処理を行ったり、Windows FormアプリケーションやWPFアプリケーションで同じデータを扱ったりできるからです。また、書かれている通り、そのデータの取り扱いが難しくなります。途中で切ったり、検索をする場合などは特にです。

     

    データベースに格納する前にユーザーが入力した文字列を直ぐにHtmlEncodeする必要もありますし、特別な事情がない限りは必要に迫られた時にその都度行えば良いと思います。少なくとも、生データでデータベースに保存する以上に問題が発生することは無いでしょう。

    2008年9月19日 12:55
    モデレータ
  • (勝手に trapemiya さんの続き)
    そういう意味で、HtmlEncode を行うタイミングは MVC でいうビューで行うべきです。
    HtmlEncode が必要な理由を考えれば自ずとそうなると思います。
    2008年9月19日 13:16

すべての返信

  • 特別な場合を除き、一般的には生データのまま、つまりHtmlEncodeせずにデータベースに保存するのが普通でしょう。理由は他のシステムとのやり取りや、同じデータを異なるアプリケーションで見るときに都合が良いからです。例えば、Excelに取り込んで処理を行ったり、Windows FormアプリケーションやWPFアプリケーションで同じデータを扱ったりできるからです。また、書かれている通り、そのデータの取り扱いが難しくなります。途中で切ったり、検索をする場合などは特にです。

     

    データベースに格納する前にユーザーが入力した文字列を直ぐにHtmlEncodeする必要もありますし、特別な事情がない限りは必要に迫られた時にその都度行えば良いと思います。少なくとも、生データでデータベースに保存する以上に問題が発生することは無いでしょう。

    2008年9月19日 12:55
    モデレータ
  • (勝手に trapemiya さんの続き)
    そういう意味で、HtmlEncode を行うタイミングは MVC でいうビューで行うべきです。
    HtmlEncode が必要な理由を考えれば自ずとそうなると思います。
    2008年9月19日 13:16
  • trapemiyaさん、囚人さん、回答ありがとうございます。

    アドバイスの通りに現在のシステムを変更しました。

     

    また何かありましたら、アドバイスお願い致します。

    ありがとうございました。

    2008年9月23日 16:36