ホームページ >データベース >mysql チュートリアル >VB.NET データベース更新での SQL インジェクションをパラメータで防ぐにはどうすればよいですか?
VB で SQL クエリを保護するためのパラメータの利用
VB では、SQL インジェクション攻撃を防ぐために SQL データベースを更新するときにパラメータを使用することが不可欠です。データベース テーブルの更新を目的とした次のコードを考えてみましょう:
dbConn = New SqlConnection("server=.\SQLEXPRESS;Integrated Security=SSPI; database=FATP") dbConn.Open() MyCommand = New SqlCommand("UPDATE SeansMessage SET Message = '" & TicBoxText.Text & _ "'WHERE Number = 1", dbConn) MyDataReader = MyCommand.ExecuteReader() MyDataReader.Close() dbConn.Close()
一重引用符や二重引用符などの特殊文字を含む入力に遭遇すると、このコードはクラッシュする可能性があります。この問題を修正するには、パラメータ、特にプログラミング言語の変数に似た名前付きパラメータを利用する必要があります。
MyCommand = New SqlCommand("UPDATE SeansMessage SET Message = @TicBoxText WHERE Number = 1", dbConn) MyCommand.Parameters.AddWithValue("@TicBoxText", TicBoxText.Text)
このコードでは、「@TicBoxText」がパラメータ名として使用され、値は「」経由で提供されます。値を使って追加します。」コマンドは実質的に自己完結型となり、ユーザーによる操作から保護されます。これにより、「ExecuteReader」メソッドは干渉を受けることなく安全に実行できるようになります。
以上がVB.NET データベース更新での SQL インジェクションをパラメータで防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。