ホームページ > バックエンド開発 > C++ > C#のSQLCommandは、どのようにしてSQL注入攻撃を防ぐことができますか?

C#のSQLCommandは、どのようにしてSQL注入攻撃を防ぐことができますか?

Linda Hamilton
リリース: 2025-02-03 02:16:13
オリジナル
303 人が閲覧しました

How Can SqlCommand in C# Prevent SQL Injection Attacks?

SQLインジェクション攻撃からのC#アプリケーションの保護

SQLインジェクションは、攻撃者がデータベースクエリを操作できる深刻なセキュリティの脅威であり、データ侵害につながる可能性があります。 SQLデータベースと相互作用するC#アプリケーションでこのリスクを軽減するには、

を使用してパラメーター化されたクエリを使用することが最重要です。

SqlCommandクラスは、正しく使用すると、SQL注入に対する強力な防御を提供します。 そのパラメーターコレクションは、データ型の検証と変換を自動的に処理し、脆弱性の一般的なソースである手動入力消毒の必要性を削除します。

ここに例示的な例:

SqlCommand このコードスニペットは、

内でパラメーター

および

の使用を示しています。 値はパラメーターとして渡され、直接SQL注入を防ぎます。 SQL Serverは、文字列からXMLへの暗黙的な変換を処理します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

private static void UpdateDemographics(Int32 customerID, string demoXml, string connectionString)

{

    // Update store demographics stored in an XML column.

    string commandText = "UPDATE Sales.Store SET Demographics = @demographics WHERE CustomerID = @ID;";

 

    using (SqlConnection connection = new SqlConnection(connectionString))

    {

        SqlCommand command = new SqlCommand(commandText, connection);

        command.Parameters.Add("@ID", SqlDbType.Int).Value = customerID;

        command.Parameters.AddWithValue("@demographics", demoXml); // Implicit XML conversion by SQL Server

 

        try

        {

            connection.Open();

            Int32 rowsAffected = command.ExecuteNonQuery();

            Console.WriteLine($"RowsAffected: {rowsAffected}");

        }

        catch (Exception ex)

        {

            Console.WriteLine(ex.Message);

        }

    }

}

ログイン後にコピー

でパラメーター化されたクエリを使用することにより、開発者はユーザー入力の手動での消毒に関連するリスクを排除します。このアプローチは、SQLインジェクションの脆弱性からC#アプリケーションを保護するための堅牢で効率的な方法を提供します。 これにより、データの整合性が確保され、不正アクセスから保護されます

以上がC#のSQLCommandは、どのようにしてSQL注入攻撃を防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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