ASP.Net での SQL インジェクションの防止
SQL インジェクションは、攻撃者が Web サイトやデータベースを侵害する可能性がある一般的なセキュリティ脆弱性です。 ASP.Net では、パラメーター化されたクエリは、SQL ステートメントをユーザー入力から分離することで SQL インジェクションを防止するための推奨方法であり、それによって悪意のある文字がクエリの一部として解釈されるのを防ぎます。
パラメーター化されたクエリ例
次のスニペットは、ASP.Net でパラメータ化されたクエリを使用して SQL を防ぐ方法を示しています。注入:
SqlCommand cmd = new SqlCommand("Select * from Table where ref=@ref", con); cmd.Parameters.Add("@ref", SqlDbType.Int); cmd.Parameters["@ref"] = 34;
リンク サーバーを使用した OpenQuery
分散クエリとリンク サーバーを処理する場合、OpenQuery を利用できます。ただし、OpenQuery は文字列を受け入れるため、文字列の一部として変数を渡すことはできません。これを解決するには、クエリを次のようにフォーマットできます。
Dim conn As SqlConnection = New SqlConnection("your SQL Connection String") Dim cmd As SqlCommand = conn.CreateCommand() cmd.CommandText = "Select * db...table where investor = @investor" Dim parameter As SqlParameter = cmd.CreateParameter() parameter.DbType = SqlDbType.Int parameter.ParameterName = "@investor" parameter.Direction = ParameterDirection.Input parameter.Value = 34
追加の対策
パラメータ化されたクエリに加えて、次の対策によりアプリケーションをさらに保護できます。 SQL インジェクション:
これらのベスト プラクティスに従い、継続することでSQL インジェクションの脅威を警戒することで、ASP.Net アプリケーションのセキュリティを大幅に強化できます。
以上がパラメーター化されたクエリやその他の対策により、ASP.NET での SQL インジェクションをどのように防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。