カスタム サーバー コントロールのセキュリティ保護

更新 : 2007 年 11 月

カスタム サーバー コントロールは、ASP.NET Web サーバー コントロールの機能を拡張する 1 つの方法です。次の基本的なセキュリティ ガイドラインは、カスタム サーバー コントロールのユーザーと開発者向けに用意されています。カスタム サーバー コントロールの作成の詳細については、「ASP.NET カスタム サーバー コントロールの開発」を参照してください。

Microsoft Visual Studio 2005 などの IDE は、カスタム コントロールの使用だけでなく、開発も簡単にします。ただし、以下のセキュリティ ガイドラインは、使用する IDE に関係なく適用されます。

ASP.NET Web アプリケーションのセキュリティに関する一般的な情報については、「ASP.NET Web アプリケーションのセキュリティ」を参照してください。

カスタム サーバー コントロールのユーザー向けガイドライン

カスタム サーバー コントロールを Web アプリケーションで使用する方法は多数あります。たとえば、ソース コード ファイルを Web アプリケーションの App_Code フォルダに直接配置する方法、グローバル アセンブリ キャッシュのコントロールを使用する方法、または Visual Studio コンテンツ インストーラなどの自動インストーラでインストールされるコミュニティ コンポーネントを使用する方法があります。どの場合でも、悪意のあるコードや、意図していなくてもコンポーネントをホストする IDE またはサーバーに望ましくない影響を与えるコードをインポートすることには注意する必要があります。

カスタム サーバー コントロールのユーザーが考慮する必要があるセキュリティ ガイドラインの一部を以下に示します。この一覧はすべてを列挙したものではなく、調査の起点として用意しました。

カスタム サーバー コントロールの開発者向けガイドライン

カスタム コントロールを開発する場合、ASP.NET アプリケーションのページとコントロールのセキュリティ、および .NET Framework のセキュリティについて、一般的なベスト プラクティスに従います。多くの場合、カスタム サーバー コントロールのユーザーは、すべての実装の詳細やセキュリティの関連事項を意識しません。そのために、確立しているセキュリティ規約に従い、コンポーネントが機能するために必要なすべてのアクセス許可を明確に呼び出して計画します。ASP.NET Web サイトのセキュリティを使用した Web アプリケーションの一般的なセキュリティ問題と解決方法は、「.NET Framework 開発者ガイド」の 「セキュリティの基本概念」、および「Patterns and Practices Web サイト」のセキュリティに関するトピックで、Web アプリケーションに一般的なセキュリティ問題と解決方法を調べることができます。

カスタム Web サーバー コントロールを設計して実装した後は、コンポーネントをユーザーに配布する方法を決めます。配布には 2 つの一般的な方法があります。アセンブリとして、またはコミュニティ コンポーネントとして配布する方法です。コンポーネントをアセンブリとして配布する場合、アセンブリに署名します (厳密な名前の署名とも呼ばれます)。署名によって、他のソフトウェアが識別でき、明示的に参照できる固有の ID がアセンブリに付与されます。「アセンブリを使用したプログラミング」で説明するように、他の利点もあります。

自動インストール手順でコミュニティ コンポーネントとしてコンポーネントを配布する場合、コンポーネントに暗号化して署名します。送信元に固有のデジタル署名を作成することで、データが特定の人から送信されたことを署名で確認するときに役立ちます。Visual Studio 2005 を使用してコミュニティ コンポーネントを作成する方法の 1 つは、Visual Studio コンテンツ インストーラを使用し、署名できる .vsi ファイルを作成する方法です。 詳細については方法 : Visual Studio コンテンツ インストーラを使用するためにコミュニティのコンポーネントをパッケージ化する および方法 : Visual Studio コンテンツ インストーラを使用するためにコミュニティのコンポーネントをパッケージ化する および方法: Visual Studio コンテンツ インストーラーを使用するためにコンポーネントをパッケージ化する および方法: Visual Studio コンテンツ インストーラーを使用するためにコンポーネントをパッケージ化する.

カスタム サーバー コントロール コンポーネントを開発するときに考慮するセキュリティ ガイドラインの一部を以下に示します。この一覧はすべてを列挙したものではなく、調査の起点として用意しました。

参照

概念

カスタム コントロール デザイナ コンポーネントの保護

その他の技術情報

Patterns and Practices Web サイト

厳密な名前付きアセンブリの作成と使用

アセンブリを使用したプログラミング

ASP.NET Web アプリケーションのセキュリティ

ASP.NET カスタム サーバー コントロールの開発