Web サイトのセキュリティを実現するには、次の側面が必要です。
ID 認証: ユーザーの身元と信頼性を確認するプロセス。 ASP.NET では、次の 4 種類の認証が提供されます。
Windows 認定
フォーム認証
認証
カスタム認証
認可: 特定の役割を定義し、特定のユーザーに割り当てるプロセス。
機密性: クライアント ブラウザと Web サーバーの暗号化が含まれます。
整合性: データの整合性を維持します。たとえば、デジタル署名を実装します。
一般に、フォームベースの認証には、ネットワーク構成ファイルと検証コードを含む登録ページの編集が含まれます。ネットワーク構成ファイルは次のコードで記述できます。
<configuration><system.web> <authentication mode="Forms"> <forms loginUrl ="login.aspx"/> </authentication> <authorization> <deny users="?"/> </authorization></system .web>....</configuration>
上記のコード スニペットで言及されている login.aspx ページには、認証用のユーザー名とパスワードを含む次のコードが含まれている場合がありますが、ファイル内でエンコードするのは困難です。
protected boolAuthenticate(String uname, String pass){ if(uname == "Tom") { if(pass == "tom123") return true; } if(uname == "Dick") { if(pass == " Dick123") return true; } if(uname == "Harry") { if(pass == "har123") return true; } return false;}public void OnLogin(Object src, EventArgs e){ if (authenticate(txtuser.Text, txtpwd.Text)) { FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked) } else { Response.Write("無効なユーザー名またはパスワード");
認証プロセスには FormsAuthentication クラスが使用されることに注意してください。
ただし、Visual Studio を使用すると、コードを記述することなく、Web サイト管理ツールを通じてユーザーの作成、認証、認可をシームレスに簡単に実装できます。このツールを使用すると、ユーザーとロールを作成できます。
さらに、ASP.NET には、すべての作業を制御および実行できる既製のログイン コントロール シリーズがあります。
フォームベース認証を設定するには、次の操作を行う必要があります。
認証プロセスをサポートするユーザー データベース
データベースを利用したウェブサイト
ユーザーアカウント
役割
ユーザーアクティビティおよびグループアクティビティの制限
ユーザーのステータスやその他の情報を表示するユーザーページ
ユーザーがログイン、パスワードの取得、およびパスワードの変更を行うことができるログイン インターフェイス。
ユーザーを作成するには、次の手順を実行する必要があります。
ステップ 1: 「Web サイト」->「ASP.NET の構成」を選択して、Web アプリケーション管理ツールを開きます。
ステップ 2: [セキュリティ オプション] をクリックします。
ステップ 3: 「フォームベース認証」オプションを選択して、認証タイプを「インターネットから」に設定します。
ステップ 4: [ユーザーの作成] をクリックします。すでにロールを作成している場合は、このステップでそのロールをユーザーに割り当てることができます。
ステップ 5: Web サイトを作成し、次のページを追加します。
ウェルカムページ
ログインページ
登録ページ
パスワード回復ページ
パスワード変更ページ
ステップ 6:ようこそページのログイン セクションでログイン ステータス コントロールを設定します。 LoggedIn と LoggedOut という 2 つの標準ボックスが含まれています。
LoggedIn にはログイン ユーザーを表示するオプションがあり、LoggedOut にはログアウト ユーザーを表示するオプションがあります。プロパティ ウィンドウでログイン テキストとログアウト テキストのプロパティを変更できます。
ステップ 7: LoginStatus コントロールの下に LoginView コントロールを設定します。ユーザーがログインしたかどうかを反映する他のテキストまたは他のコントロール (ハイパーリンク、ボタンなど) を設定できます。
このコントロールには、「匿名」ボックスと「ログイン」ボックスという 2 つの標準ボックスがあります。各ビューを選択し、条件ボックスが選択されたときにユーザーが表示するテキストを作成します。テキストは、下の画像で赤くマークされた領域に配置する必要があります。
ステップ 8:開発者はアプリケーション ユーザーを作成します。訪問者がユーザー アカウントを作成できるようにすることもできます。これを実現するには、登録ページに移動するリンクを LoginView コントロールの下に追加します。
ステップ 9:登録ページで CreateUserWizard コントロールをセットアップします。このコントロールの ContinueDestinationPageUrl プロパティを設定して、ようこそページに確実に移動できるようにします。
ステップ 10:ログイン ページを作成します。このページでログイン コントロールを設定します。 LoginStatus コントロールは、ログイン ページに自動的に接続します。このデフォルト設定を変更するには、ネットワーク構成ファイルに次の変更を加えます。
たとえば、ログイン ページに「signup.aspx」という名前を付けた場合、次のコード行をネットワーク構成ファイルに追加できます。
<configuration> <system.web> <authentication mode="Forms"> <forms loginUrl ="signup.aspx" defaultUrl = ''Welcome.aspx'' </authentication> </system.web></configuration>
ステップ 11:ユーザーはパスワードを忘れることがよくあります。 PasswordRecovery コントロールは、ユーザーがこのアカウントへのログインを取り戻すのに役立ちます。ログイン コントロールを選択します。その小さなタブを開き、「テンプレートに変換」を選択します。
このコントロールのユーザー インターフェイスをカスタマイズすると、ログイン ボタンの下にハイパーリンク コントロールを配置して、パスワード取得ページにリンクできるようになります。
ステップ 12:パスワード回復ページで PasswordRecovery コントロールを設定します。この制御では、メール サーバーがユーザーにパスワードを送信する必要があります。
ステップ 13:ようこそページの LoginView コントロールの LoggedIn ボックスにパスワード変更ページへのリンクを設定します。
ステップ 14:パスワード変更ページで ChangePassword コントロールを設定する このコントロールには 2 つのビューがあります。
次に、アプリケーションを実行して、さまざまなセキュリティ操作を観察します。 Web アプリケーション管理ツールに戻り、セキュリティ オプションをクリックしてロールを作成できます。 [ロールの作成] をクリックして、このアプリケーションのロールをいくつか作成します。
「ユーザーの管理」をクリックしてユーザーに役割を割り当てます。
Secure Sockets Layer (SSL) は、安全な接続を確保するために使用されるプロトコルです。 SSL を使用すると、ブラウザはサーバーに送信されるすべてのデータを暗号化し、サーバーからのすべてのデータを復号化します。同時に、サーバーは、Liangzi Browser 内のすべてのデータを暗号化および復号化します。
安全な接続の URL では、HTTP プロトコルの代わりに HTTPS プロトコルが使用されます。安全な接続を使用しているブラウザーにも小さなロックが表示されます。ブラウザが SSL を使用してサーバーとアクティブに通信すると、サーバーはサーバー自体を認証するためにセキュリティ証明書を送信します。
SSL を使用するには、信頼できる証明機関 (CA) からデジタル セキュリティ証明書を購入し、その証明書をネットワーク サーバーにインストールする必要があります。以下に、評判の良い信頼できる認証機関をいくつか示します。
www.verisign.com
www.geotrust.com
www.thawte.com
SSL はすべての主要なブラウザとサーバーに組み込まれています。 SSL を有効にするには、デジタル証明書をインストールする必要があります。さまざまなデジタル証明書の強度は、暗号化プロセス中に生成されるキーの長さに応じて異なります。キーが長いほど、証明書の安全性が高まり、接続の安全性も高まります。
強さ | 説明する |
---|---|
40ビット | ほとんどのブラウザをサポートしていますが、ハッキングされやすいです。 |
56ビット | 40 ビットよりも堅牢です。 |
128ビット | クラックするのは困難ですが、すべてのブラウザがサポートしているわけではありません。 |