ユーザー入力の検証

データにアクセスするアプリケーションを作成する場合は、すべてのユーザー入力について、悪意がないと確認されるまでは、悪意があるものと見なす必要があります。そうしないと、アプリケーションは攻撃に対して脆弱になる可能性があります。発生する可能性がある攻撃の一種に、SQL インジェクションと呼ばれるものがあります。これは、後で SQL Server のインスタンスに渡され解析および実行が行われる文字列に、悪意のあるコードを挿入するというものです。この攻撃を防ぐには、パラメータを持つストアド プロシージャを可能な限り使用し、ユーザー入力を常に検証する必要があります。

サーバーへの無駄なラウンド トリップを行わないようにするには、ユーザー入力の検証をクライアント コードで行うことが重要です。同様に、ストアド プロシージャへのパラメータをサーバー上で検証し、有効でない入力や、クライアント側の検証をバイパスする入力を検出することも重要です。

SQL インジェクションと、この攻撃を避ける方法の詳細については、SQL Server オンライン ブックの「SQL インジェクション」を参照してください。ストアド プロシージャのパラメータの検証の詳細については、SQL Server オンライン ブックの「ストアド プロシージャ (データベース エンジン)」およびその下位のトピックを参照してください。

参照

その他のリソース

JDBC ドライバ アプリケーションのセキュリティ保護