1

これは本当に簡単な質問です

データベースのデータを更新または挿入する 1 つの方法は、次のような準備済みステートメントを使用することです。

Dim cmd As New MySqlCommand("UPDATE `table` SET `field` = ?value", con)
cmd.Parameters.AddWithValue("?value", "user given value")
cmd.ExecuteNonQuery()

これは、SQL インジェクションの可能性を防ぐために行います。私の質問は、mysqlHelper クラスを使用して文字列をエスケープするかどうかです。準備されたステートメントと同等ですか?つまり、SQL インジェクションはまだ可能ですか?

エスケープ文字メソッドの使用方法は次のとおりです

Dim cmd As New MySqlCommand("UPDATE `table` SET `field` =" & MySqlHelper.EscapeString("user given value"),con)
cmd.ExecuteNonQuery()
4

1 に答える 1

1

はい、そうですが、一般的には、パラメーターを使用して適切な方法で行う方がよいでしょう。上記の使用はお勧めできません。

こちらをご覧ください

于 2012-10-13T20:51:37.297 に答える