2011-12-20 2 views
3

私たちの顧客は、ユーザー管理と異なる役割を持つASP.NET Webアプリケーションを望んでいるが、いくつかの非常に奇妙な条件ました:これらのWebアプリケーションの要件はさらに現実的ですか?

  • アプリケーションがブラウザから動作するはずです、ユーザーが応じたものを、ログインして行うことができるはず彼らの与えられた権利に。 (これまでのように簡単に)
  • 一般的なシナリオは、同じマシン、同じWindowsアカウント、同じブラウザから異なるユーザー権限を持つ多くの人が働くことです。 (順番に)他のユーザーが自分のアカウントから見たデータや何もしていないデータにアクセスすることはできません。

は、私にとっては、これはおそらく意味:

  • は、私は、キャッシングの任意の型を使用することはできません。
  • どの種類のCookieも使用できません。
  • GETパラメータよりも重要なことはできません。
  • 私はセッションについて非常に注意する必要があります。

まだ私は(確実に)ブラウザのサイドキャッシングを防止する方法がわかりません。私たちは、このようなものはWindowsアカウントのものだと説明しようとしましたが、彼はかなり一貫しているように見えます。

これは現実的な要件ですか、このようなセキュリティ要件を備えたアプリケーションを実現するには、何を覚えておく必要がありますか?

これまでに開発したアプリケーションでこれまで問題となったことはありません。そのため、これをどう対処するかはわかりません。

+5

インターネットカフェから複数の人がgmailにログインするときの要件はどのように異なりますか?ユーザーがログアウトしてHTTPSを使用していることを確認してください。 –

+0

おそらくそうではありません。可能なブラウザ側のキャッシュを防ぐのに十分なhttpsですか? – magnattic

+0

@atticae - HTTPSにより、キャッシュ設定に関係なく、セッションの終了時にすべてのブラウザデータが破棄されます。ただし、セッションを終了する必要があります。つまり、ユーザーは常にログオフするように注意する必要があります。 – Keith

答えて

4

これらのWebアプリケーションの要件はさらに現実的ですか?

はいです。オンラインバンキングアプリケーションは、通常、一定期間使用しないとセッションを中止することによってこれを行います。また、ブラウザを閉じると、セッションを中止する必要があります。手動でログアウトすることをお勧めします。

他のいくつかの点

私は、キャッシングの任意の型を使用することはできません。

noですが、セッションのキャッシュは問題ありません。

どのタイプのCookieも使用できません。

セッションクッキーを除き

なし

私はGETパラメータの上に重要な何かを行うことはできません。

うん

私はセッションについて非常に注意する必要があります。

これはおそらく常に良い考えです。

+0

私はまた、これらの要件に基づいて、ログアウトが行われたときにセッションを放棄する必要があることを追加したい、そうでなければセッションハイジャックが可能性がある。 – lloydom

2

(ASP.Netでデフォルトで提供される)セッションを使用している限り、問題はないはずです。ユーザーがログアウトしたり、合理的に短い自動ログアウトを強制するようにしてください。

+0

+1正確には、セッションは問題ではありません。 – Icarus

0

はい、これらの要件は非常に現実的です。実際には、すべてのASP.NETアプリケーションについて考慮する必要があります。
適切なセッションとCookieの管理、セッションキャッシング、アプリケーション内のメンバシップとロールプロバイダ(カスタムまたは組み込み)の使用を確認する必要があります。
もちろん、以前にログインしたユーザーはログアウトする必要があります。強制的にログアウトすることもできます。

1

Windows統合認証の使用を計画していない限り、要件はそれほど悪くありません。 Windows認証を使用している場合、いいえ、ユーザビリティの問題を追加することなく、要件2を現実的に満たすことはできません。

ただし、フォーム認証を使用している場合でも、完了したらユーザーがWebサイトからログアウトする(またはすべてのブラウザウィンドウを閉じる)必要があります。ログアウトしないと、次の人に閲覧を継続して、前の人が保存したすべてのデータを見ることができます(可能性が高いでしょう)。

これをビジネスユーザーが理解できるように説明する必要があるでしょう。そうしないと、ログアウトに失敗したために責任を負う可能性があるからです。多くのエンドユーザーは、そのようなことがどのように機能しているか分かりません。技術の限界が何であるかを技術的ではない(または少なくとも理解しやすい)言葉で説明するのは通常私たちの責任です。

関連する問題