以前の担当者のコードを修正する際に、上記が考慮されていなかったことがありました。
SQLインジェクションとは、SQL文の入力値に不正なSQL文を注入してデータベース不正操作する攻撃のことです。
SQLインジェクション対策をしていないと、SQL文が攻撃によって意図しない挙動を示し、データが改ざんされたり抜き取られたりする可能性があります。
以前のコードでは、下記の例のように入力値をそのままSQL文に埋め込んでいました。
string sql = $@“Update hoge SET ***カラム = ‘{hogehoge}’ WHERE id = ‘{id}'”
今回は下記の例のようにAddWithValueメソッドを利用してSQLインジェクション対策を行いました。
string sql = $@“Update hoge SET ***カラム = @hogehoge WHERE id = @id”
// SqlCommandの処理とかは省略
command.Parameters.AddWithValue(“@hogehoge”, “hogehoge”);
command.Parameters.AddWithValue(“@id”, 1);
SQLインジェクションには気を付けましょう!