- - PR -
ASP.NETにおけるXSS、SQLインジェクション対策
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-09 10:24
パラメタライズドクエリは「データベース」に対する問合せに使います。「DataSetやDataTab le」に対する問合せには使えません。 ま、Jitta さんも仰っているようにイントラ限定使用ならば、運用で逃げる事も可能ですね。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 11:05
はい。 的外れな事を言ってたらごめんなさい。 SELECTに関してはパラメータクエリにしないと駄目だと認識したのですが、更新、削除に関してはデータアダプタのUpdateCommandとDeleteCommandで行うので、それ自体がパラメータクエリになっているなんて事はありませんか? | ||||
|
投稿日時: 2006-02-09 11:14
横から何度もすみません。
UpDataCommand の CommandText を出力してみたらどうなっていますかな? _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 11:27
簡単に書くと Me.OracleUpdateCommand53.CommandText = "UPDATE TABLE1 SET CODE = :CODE, MOJI = :MOJI WHERE (CODE = riginal_CODE") AND (MOJI = riginal_MOJI) Me.OracleUpdateCommand53.Connection = Me.Connection Me.OracleUpdateCommand53.Parameters.Add(New System.Data.OracleClient.OracleParameter(":CODE", System.Data.OracleClient.OracleType.Number, 0 "CODE")) Me.OracleUpdateCommand53.Parameters.Add(New System.Data.OracleClient.OracleParameter(":MOJI", System.Data.OracleClient.OracleType.VarChar, 10, "MOJI")) こんな感じです。 パラメータクエリですよね。 | ||||
|
投稿日時: 2006-02-09 11:41
あ、そっちですか。Visual Studio のウィザードが自動で生成したやつですね。 そうです。パラメータクエリです。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 12:09
ずばり聞いてしまいます。
下記のロジックの場合、どういった修正をすれば良いですか? Dim con As New OracleConnection Dim da As New OracleDataAdapter Dim cmd As OracleCommand Dim ds As New DataSet Dim dv As New DataView Dim myRow As DataRow Dim SQL As String SQL = "SELECT * FROM TABLE1 WHERE CODE=" & 変数 con.ConnectionString = 接続文字列 cmd = New OracleCommand(SQL, con) da.SelectCommand = cmd da.Fill(ds, "TABLE1") dv.Table = ds.Tables("TABLE1") If dv.Count > 0 Then '該当あり myRow = dv(0).Row Else '該当なしは新規 myRow = dv.Table.NewRow End If myRow("MOJI") = 入力値 '更新処理 da.Update(ds) | ||||
|
投稿日時: 2006-02-09 13:14
ずばり応えてみます。
こんなのかな。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 13:25
ありがとうございます。参考になりました。 |