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

質問編集履歴

3

試したうえでの追記を追加

2020/09/02 11:21

投稿

hinano
hinano

スコア2

title CHANGED
File without changes
body CHANGED
@@ -120,5 +120,12 @@
120
120
  **例1、例2、修正例1はダメ。修正例2はOK**でした。
121
121
  修正例1は例1、例2と同じ結果になりました。
122
122
  (ユーザテーブルの全件のカウントが返ってくる)
123
+ 実行されたSQLを出力すると以下のようでした。
124
+ ```SQL
125
+ SELECT COUNT(UserID) AS cnt FROM m_User WHERE UserID = '0001' AND pass= 'a' OR '1'='1'
126
+ ```
123
127
  それに対して修正例2は0件(該当なし)が返ってきました
124
- なんでそうなるのかはまだ掴みきれてないすが。。
128
+ 実行されたSQLを出力すと以下ようした
129
+ ```SQL
130
+ SELECT COUNT(UserID) AS cnt FROM m_User WHERE UserID = @ID AND pass= @PASSWORD
131
+ ```

2

2020/09/02 11:21

投稿

hinano
hinano

スコア2

title CHANGED
File without changes
body CHANGED
@@ -109,4 +109,16 @@
109
109
  0. 自分のコードは対策ができていないのではと思った。
110
110
  0. 対策方法を考えたが、対策できているのかよくわからなくなった。
111
111
 
112
- 知識不足ゆえに質問も的を射ていないかもしれませんが、よろしくお願いします。
112
+ 知識不足ゆえに質問も的を射ていないかもしれませんが、よろしくお願いします。
113
+
114
+
115
+ ---
116
+
117
+ #試した上での追記
118
+ 例1、例2、修正例1、修正例2全て試しました
119
+ 結果として
120
+ **例1、例2、修正例1はダメ。修正例2はOK**でした。
121
+ 修正例1は例1、例2と同じ結果になりました。
122
+ (ユーザテーブルの全件のカウントが返ってくる)
123
+ それに対して修正例2は0件(該当なし)が返ってきました
124
+ なんでそうなるのかはまだ掴みきれてないですが。。。

1

2020/09/02 03:22

投稿

hinano
hinano

スコア2

title CHANGED
File without changes
body CHANGED
@@ -76,7 +76,7 @@
76
76
  ```vb.net
77
77
  Dim userid As String = tx_userid.Text
78
78
  Dim pass As String = tx_pass.Text
79
- Dim sqlstr As String = "SELECT COUNT(UserID) AS cnt FROM m_User WHERE UserID = @ID AND pass= @PASSWORD"
79
+ Dim sqlstr As String = "SELECT COUNT(UserID) AS cnt FROM m_User WHERE UserID = '@ID' AND pass= '@PASSWORD'"
80
80
  sqlstr = sqlstr.Replace("@ID", userid)
81
81
  sqlstr = sqlstr.Replace("@PASSWORD", pass)
82
82
  'SQL文を実行するコードに続く