MySQL での C#: 安全なデータ入力のための INSERT パラメーターの利用
C# プログラミングでは、MySQL データベースにデータを挿入する際には、次のことを避けるために慎重な考慮が必要です。セキュリティの脆弱性。このガイドでは、INSERT コマンドのパラメーター バインディングの問題に対処し、安全で効果的な解決策を提供します。
問題
MySqlCommand を使用する場合、Add メソッドを使用してパラメーターを指定するAddWithValue を使用しない場合、または正しいパラメーター名を渡さない場合、NULL 値の挿入または構文エラーが発生する可能性があります。これにより、データの整合性が損なわれ、アプリケーションが SQL インジェクション攻撃にさらされる可能性があります。
解決策
安全なデータ バインディングを確保するには、次の 2 つの推奨アプローチがあります。
AddWithValue メソッド:
AddWithValue メソッドを使用すると、パラメーター名やデータ型の変換を気にせずに、パラメーターに値を安全に挿入できます。
string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); MySqlCommand comm = conn.CreateCommand(); comm.CommandText = "INSERT INTO room(person,address) VALUES(@person, @address)"; comm.Parameters.AddWithValue("@person", "Myname"); comm.Parameters.AddWithValue("@address", "Myaddress"); comm.ExecuteNonQuery(); conn.Close();
使用して?プレースホルダー:
または、? を使用することもできます。 INSERT コマンドにプレースホルダーを追加し、次のようにパラメータを追加します。
string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); MySqlCommand comm = conn.CreateCommand(); comm.CommandText = "INSERT INTO room(person,address) VALUES(?person, ?address)"; comm.Parameters.Add("?person", "Myname"); comm.Parameters.Add("?address", "Myaddress"); comm.ExecuteNonQuery(); conn.Close();
いずれかのアプローチを利用すると、MySQL データベースにデータを安全に挿入でき、null 値の挿入や SQL インジェクションの脆弱性を防ぐことができます。
以上がC# を使用して MySQL にデータを安全に挿入する方法: AddWithValue とプレースホルダー?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。