ホームページ  >  記事  >  データベース  >  C# を使用して MySQL にデータを安全に挿入する方法: AddWithValue とプレースホルダー?

C# を使用して MySQL にデータを安全に挿入する方法: AddWithValue とプレースホルダー?

DDD
DDDオリジナル
2024-11-07 17:24:03647ブラウズ

How to Securely Insert Data into MySQL Using C#: AddWithValue vs. Placeholders?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。