teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記&訂正

2020/09/03 00:42

投稿

退会済みユーザー
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

訂正

2020/09/03 00:42

投稿

退会済みユーザー
answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  ・・・となっていて、パラメータ化による SQL インジェクション防止対策は考えれれていると思います。
17
17
 
18
- ただ、決意もった攻撃者はパラメータ化さ突破できるそうで(Microsoft のドキュメントに書いてあったこと。そのドキュメントは見つかりませんが)、以下の記事の「すべての入力の検証」セクションに書いてあるように "型、長さ、形式、および範囲をテストすることによってユーザー入力を必ず検証してください" も対処する必要があると思います。
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))