回答編集履歴
2
追記&訂正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
> 1. 今の自分の理解に間違っている部分があれば指摘してほしいです。
|
4
4
|
> 2. (今の自分の理解があっているとするなら)こうすれば対策が取れたコードになるんじゃないか、というコードは書いてみたのですが、これではたして対策できているのか、
|
5
5
|
|
6
|
-
対策以前に、質問に書かれた「知ったうえで対策を考えて書いたコード」の「例 1」は動かないと思いますが、それはちょっと置いといて、SQL 文のパラメータ化の観点だけから対策前後のコードを見ると、
|
6
|
+
対策以前に、質問に書かれた「知ったうえで対策を考えて書いたコード」の「例 1」は動かないと思いますが、それはちょっと置いといて(=「例 1」は議論の対象外とし、「例 2」だけ考えてという意味)、SQL 文のパラメータ化の観点だけから対策前後のコードを見ると、
|
7
7
|
|
8
8
|
> SQLインジェクション攻撃を知るまでに書いていたコード
|
9
9
|
|
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
⇒ SQL 文をパラメータ化し、ADO.NET + SqlClient の SqlCommand 使ってパラメータ値を代入し、SQL Server に発行。
|
15
15
|
|
16
|
-
・・・となっていて、パラメータ化による SQL インジェクション防止対策は考えれ
|
16
|
+
・・・となっていて、パラメータ化による SQL インジェクション防止対策は考えられていると思います。
|
17
17
|
|
18
18
|
ただ、「高いスキルを持つ決然たる攻撃者は、パラメータ化されたデータであっても操作できる」そうで(下に紹介した Microsoft のドキュメントに書いてあったこと)、以下の記事の「すべての入力の検証」セクションに書いてあるように "型、長さ、形式、および範囲をテストすることによってユーザー入力を必ず検証してください" も対処する必要があると思います。
|
19
19
|
|
1
訂正
answer
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
・・・となっていて、パラメータ化による SQL インジェクション防止対策は考えれれていると思います。
|
17
17
|
|
18
|
-
ただ、
|
18
|
+
ただ、「高いスキルを持つ決然たる攻撃者は、パラメータ化されたデータであっても操作できる」そうで(下に紹介した Microsoft のドキュメントに書いてあったこと)、以下の記事の「すべての入力の検証」セクションに書いてあるように "型、長さ、形式、および範囲をテストすることによってユーザー入力を必ず検証してください" も対処する必要があると思います。
|
19
19
|
|
20
20
|
SQL インジェクション
|
21
21
|
[https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-server-2008/ms161953(v=sql.100)](https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-server-2008/ms161953(v=sql.100))
|