- - PR -
ASP.NETにおけるXSS、SQLインジェクション対策
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-08 18:10
【XSSに関して】テキストボックスで<s>と入力してボタンを押してみてください 【SQLインジェクションに関して】 テキストボックスで'(シングルクォーテーション)を入力してボタンを押してみてください 私の場合は、これで周囲を説得しました。 もし上記の方法でエラーが表示されるのであれば、テストは未完ということになりますね。 がんばって下さい。 | ||||||||
|
投稿日時: 2006-02-08 18:14
はい、ただしXSSに対応したサニタイジングとSQLインジェクションに対応したサニタイジング は別物ですので注意が必要です。通常は、SQLインジェクションへの対応は入力時、XSSへの 対応は出力時に行います。 また入力時にはサニタイジングだけでなく、入力チェックもきちんと行うことが前提です。 たとえば数値データしか入力されないはずの項目に、それ以外の入力値をが入力されても通って しまうようでは論外です。 | ||||||||
|
投稿日時: 2006-02-08 18:22
これはASP.NETの標準機能で例外にスローされます。
Oracleエラーになりました。(-.-) どうやって回避すれば良いのでしょうか?教えて頂けないでしょうか。お願いします。 | ||||||||
|
投稿日時: 2006-02-08 18:24
すみません。具体的な方法とかあれば教えて頂けませんか。 | ||||||||
|
投稿日時: 2006-02-08 18:25
NUnitによるテストの自動化はおこなっていないのでしょうか? サニタイジング処理を追加するにしても、影響範囲はかなり大きいと思いますが。。。 個人的にはサニタイジング処理を作り込むよりSqlParamaterを使用するように修正したほうが、いいと思います。 もしくは対応を諦める。。。。 | ||||||||
|
投稿日時: 2006-02-08 18:29
Where句以外はRecordSetに変数の値としてセットされるだけなのかな思っていますが、どうでしょう。 | ||||||||
|
投稿日時: 2006-02-08 18:47
NUnitは知りませんでした。 さっと詳細を見ましたが何のテストをするのかよく分かりませんでした。 これで実行後の計算結果が正しいかとかのテストか可能なのでしょうか。
取り合えず画面から入力した値をWhere句に使用している画面だけでもSqlParamaterを使用する方向で考ようと思います。 | ||||||||
|
投稿日時: 2006-02-08 18:51
安直な方法ではあるのですが、 XSSの対策)Pageディレクティブに validateRequest="false"を追加する Oracleの方にfunctionを用意し、該当する項目に対してselectをかけるときに このfunctionを通す SQLの対策)パラメータクエリに書き換える(みなさんと一緒ですね) 最初に取り組まなくてはならないのは、周囲の説得ではないでしょうか・・・? |