- ベストアンサー
HTMLエスケープ処理とデーターベース
初歩的な事で申し訳ありませんがご教授下さい。 フォームから受け取った文字列をデータベースに格納し、必要に応じて出力するような処理でのHTMLエスケープについて質問です。 (前提条件として、HTMLタグは使用をさせない。フォームに入力する文字列には、< や >を使う必要性はほとんどないものとします) HTMLエスケープ処理は、どのタイミングで行うのが普通でしょうか? 1.JavaScliptで特定文字 < や > を入力させない。 2.サーバーサイドで特定文字 < や > を入力させない。 3.DBに格納する前にエスケープして、エスケープ処理後の文字列をDBに格納する。 4.DBにはそのまま格納し、出力のさいにエスケープ処理を行う。 5.どこでもかまわない。 6.その他 今まで私はあまり意識する事なく(4)を選択していたのですが、最近他の人の作ったプログラムを見る機会が増えて、その違いにちょっと気になりました。 正解はないのかも知れませんが、一般的な方法と、そのメリット、デメリット等、教えて頂けると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
回答No.2
- manoh
- ベストアンサー率60% (9/15)
回答No.1
お礼
>3 DBのデータはHTMLに出力する用途以外にも使う事があります。例えばCSVファイルに落として、宛名出力するなどの用途です。DBのデータは「生の文字列」にしておくのが望ましいです。 確かにHTML出力以外に利用したい時には元の文字列に戻す事が困難ですね。 各ケースにおいて、具体的に説明していただいた事でとても参考になりました。 ありがとうございました。