パラメータを使用して文字のエスケープを回避する方法の例をいくつか見てきました。パラメータの使用はSQLインジェクションに対して100%安全ですか?
また、いくつかの基本的なクエリ(定期的に使用されます)と、パラメーターの実装方法を教えてください。
ここに来る前に検索したいくつかのウェブサイトは、あまりにも複雑な例を提供していました。
パラメータを使用して文字のエスケープを回避する方法の例をいくつか見てきました。パラメータの使用はSQLインジェクションに対して100%安全ですか?
また、いくつかの基本的なクエリ(定期的に使用されます)と、パラメーターの実装方法を教えてください。
ここに来る前に検索したいくつかのウェブサイトは、あまりにも複雑な例を提供していました。
パラメータ化された SQL クエリの基本的な例は次のとおりです。
SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn);
SqlParameter param = new SqlParameter();
param.ParameterName = "@username";
param.Value = "abc123"
command.Parameters.Add(param);
conn
は、確立した SqlConnection です。
@username
コマンドの実行時に置換されるパラメーター名です。
abc123
は、私が例に挙げた作成済みのユーザー名です。
これは明らかに架空のシナリオですが、要点はわかります。
短いバージョンとして使用できます
SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn);
command.Parameters.AddWithValue("@username", "value");