ホームページ > データベース > mysql チュートリアル > C# SqlCommand で列名をパラメータ化するにはどうすればよいですか?

C# SqlCommand で列名をパラメータ化するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-23 08:27:23
オリジナル
503 人が閲覧しました

How Can I Parameterize Column Names in a C# SqlCommand?

SqlCommand での列名のパラメータ化

パラメータ化されたクエリは、SQL インジェクション攻撃を防止し、データベース操作のセキュリティを確保するために不可欠です。ただし、C# SqlCommand では、列名のパラメータ化に関して独特の課題が生じます。 SqlCommand は列名のパラメータ化をネイティブにサポートしていないため、元の質問で示されている構文ではエラーが発生します。

これに対処するには、実行時にクエリを動的に構築することをお勧めします。これには、列名とクエリの残りの部分を連結することが含まれます。これは不便に思えるかもしれませんが、セキュリティ リスクを軽減することが重要です。

// IMPORTANT: Ensure "slot" is validated against a whitelist to prevent injection attacks

SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE name=@name; ")
prikaz.Parameters.AddWithValue("name", name);
ログイン後にコピー

クエリを動的に構築することで、列名を効果的にパラメータ化できます。潜在的な脆弱性を回避するために、すべてのユーザー入力をホワイトリストに登録するか検証することにより、セキュリティを優先することを忘れないでください。

以上がC# SqlCommand で列名をパラメータ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート