• 締切済み

XSS対策でサニタイジングされたデータの格納

お世話になります。 WEBアプリケーションでの値の受け渡しについて質問させて頂きます。 前提条件としてjavascript・session・cookieは使えない場合について 入力画面 → 確認画面 → 完了画面 上のように画面遷移する一般的なシステムにおいて 入力画面では「name」というテキストの入力エリアが一つだけあるとした場合に 確認画面では入力された「name」を表示します。 このとき、nameはサニタイジングされた文字を表示し 確認画面→完了画面時にデータベースへデータを追加するために hiddenでnameを持っているとします この場合 <input type="hidden" name="name" value="name"> になると思いますが、このvalueにもサニタイジングされたnameのデータを入れた場合 データベースに追加される値は、入力画面でオペレータが入力した値を変わる可能性があります 入力された値をそのままデータベースに格納する場合には 格納直前はサニタイジングの逆を行うべきなのでしょうか? それともサニタイジングされたデータを格納すべきでしょうか? この話は仕様レベルの話になるかもしれないのですが宜しくお願いいたします

みんなの回答

  • tsukachan
  • ベストアンサー率42% (202/470)
回答No.1

サニタイジングのタイミングについては私も以前謝った認識でいましたが HTML生成時と言うのが一番良い様です。 データベースにはそのまま格納し、入力時の確認画面およびデータベースから取り出した値の表示画面のHTML生成時にサニタイジングしましょう。 ここに具体的な説明があります http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html

can5974
質問者

お礼

お世話になります。 サニタイジングのタイミングはHTML生成時というのは確認しているのですが、 確認画面をはさむ場合に、サニタイジングされたデータがhiddenのvalueに入ってしまうことが 問題じゃないかなと疑問に思っていたので質問させていただきました sessionが使えない場合はみなさんどうしているのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A