ADO.NET アプリケーションのセキュリティ保護Securing ADO.NET applications

ユーザー入力の検証を怠るなど、コーディング時に陥りやすい基本的なミスを防ぐだけでは、安全な ADO.NET アプリケーションを作成することはできません。Writing a secure ADO.NET application involves more than avoiding common coding pitfalls such as not validating user input. データにアクセスするアプリケーションには、機密データの取得、操作、破壊など、攻撃者に攻略される可能性がある障害点が多数あります。An application that accesses data has many potential points of failure that an attacker can exploit to retrieve, manipulate, or destroy sensitive data. そのため、アプリケーションの設計フェーズで行う脅威のモデリングのプロセスから、アプリケーションの最終的な配置と継続的な保守に至るまで、セキュリティのすべての側面を理解することが重要です。It is therefore important to understand all aspects of security, from the process of threat modeling during the design phase of your application, to its eventual deployment and ongoing maintenance.

.NET Framework には、データベース アプリケーションのセキュリティを確保し、管理するのに有用なクラス、サービス、およびツールが多数用意されています。The .NET Framework provides many useful classes, services, and tools for securing and administering database applications. 共通言語ランタイム (CLR) によって、コードを実行するためのタイプ セーフな環境が実現され、それと同時に、コード アクセス セキュリティ (CAS) によって、マネージド コードのアクセス許可はより制限されています。The common language runtime (CLR) provides a type-safe environment for code to run in, with code access security (CAS) to restrict further the permissions of managed code. 攻撃者によってもたらされる可能性のある損害は、安全なデータ アクセスのためのコーディング方法に従うことによって最小限に抑えることができます。Following secure data access coding practices limits the damage that can be inflicted by a potential attacker.

データベースなどのアンマネージ リソースを扱う場合、安全なコードを作成したとしても、自ら招いたセキュリティ ホールを防ぐことはできません。Writing secure code does not guard against self-inflicted security holes when working with unmanaged resources such as databases. SQL Server を含め、ほとんどのサーバー データベースには、正しく実装することによってセキュリティを強化できる独自のセキュリティ システムがあります。Most server databases, such as SQL Server, have their own security systems, which enhance security when implemented correctly. しかし、データ ソースがいかに堅牢なセキュリティ システムを備えていたとしても、それが適切に構成されていなければ攻撃を防ぐことはできません。However, even a data source with a robust security system can be victimized in an attack if it is not configured appropriately.

このセクションの内容In this section

セキュリティの概要Security Overview
安全な ADO.NET アプリケーションを設計するための推奨事項について説明します。Provides recommendations for designing secure ADO.NET applications.

安全なデータ アクセスSecure Data Access
セキュリティで保護されたデータ ソースのデータを使用する方法について説明します。Describes how to work with data from a secured data source.

安全なクライアント アプリケーションSecure Client Applications
クライアント アプリケーションのセキュリティに関する考慮事項について説明します。Describes security considerations for client applications.

コード アクセス セキュリティと ADO.NETCode Access Security and ADO.NET
CAS を使用して ADO.NET コードを保護する方法について説明します。Describes how CAS can help protect ADO.NET code. 部分信頼の使用方法についても説明します。Also discusses how to work with partial trust.

プライバシーとデータ セキュリティPrivacy and Data Security
ADO.NET アプリケーションの暗号化オプションについて説明します。Describes encryption options for ADO.NET applications.

DataSet と DataTable のセキュリティ ガイダンスDataSet and DataTable security guidance
DataSetDataTable に関するセキュリティ ガイダンスを提供します。Provides security guidance for DataSet and DataTable.

SQL Server のセキュリティSQL Server Security
開発者の観点から SQL Server のセキュリティ機能について説明します。Describes SQL Server security features from a developer's perspective.

セキュリティの考慮事項Security Considerations
Entity Framework アプリケーションのセキュリティについて説明します。Describes security for Entity Framework applications.

.NET のセキュリティをあらゆる観点から説明した記事へのリンクが含まれています。Contains links to articles describing all aspects of security in .NET.

セキュリティ ツールSecurity Tools
セキュリティ保護およびセキュリティ ポリシーの管理に使用する .NET Framework ツールについて説明します。.NET Framework tools for securing and administering security policy.

セキュリティで保護されたアプリケーションを作成するためのリソースResources for Creating Secure Applications
安全なアプリケーションを作成するための記事へのリンク集です。Provides links to articles for creating secure applications.

セキュリティ参考文献Security Bibliography
オンラインまたは出版物として提供されている外部リソースへのリンク集です。Provides links to external resources available online and in print.

関連項目See also