2009-05-04 7 views
7

.NET code access securityは長い間存在していましたが、現実世界ではほとんど使用されていないようです。.NETコードのアクセスセキュリティ - なぜこれはほとんど使用されていないのですか?

私の考え方によれば、これは優れたコンセプトのように思えますが、.NETに先立って見たことのないものです。 (それは他の言語でも存在するのですか?)

誰もがプロジェクトで積極的にそれを使用しているのですが、それはなぜですか?

「セキュリティのための予算がありません」または「セキュリティを学ぶ時間がありません」以外に有効な理由はありますか?

最終的に目標を達成するのはどの程度効果的ですか?

+0

良い質問です。私は(私の経験から)それはまったく使用されていないことに同意するが、理由を言うことはできない。学習曲線は確かに要因です。たぶん、ほとんどの開発者は、それのための使用を発見したことはありません?私は確かにVB.NETとC#で開発している私の数年を超えていません... – Noldorin

答えて

4

本当の理由は、Microsoftがコードアクセスセキュリティの使用方法に関するガイダンスとベストプラクティスを提供していないことです。だから本当に離陸したことはありません。彼らはなぜコードを保護したいのか説明しませんでした。例外が発生した場合、それがどのように回復するか私はそれらが主な問題だと思う。

ガイダンスとベストプラクティスを提供しているデータアクセスセキュリティと混同しないでください。

+0

"例外が発生したときに何が起こるのですか"がCASと何か関係があるのはなぜですか? - ReliabilityContractのもの? –

+0

一部のコードにアクセスできない場合は、例外はスローされません。コードのブロックに依存してコードを実行するとどうなりますか?あなたはその状況にどのように対処していますか? –

8

エンドデベロッパー(つまり、他の開発者が使用するコンポーネントをビルドする開発者ではない)は、完全に信頼できる環境をターゲットとしている環境はオプションです。コードは、当社のウェブサーバ上、または当社が所有するクライアントマシン上で実行されます。どちらの場合でも、フルトラストで実行しているコードは問題ではありません。コードが実行するエンティティは開発者を信頼します。私がCASが使われている場所がわかっている唯一のケースは、Sharepointのような環境であり、半分の時間であれば、あくまで完全信頼のためのアセンブリをGACにするだけです。

部分的に信頼できるシナリオ用にコードを書く方法を学ぶ努力を費やさないのはなぜですか?まあ、正直に言えば、完全に信頼できる仕事です。そして、実行者が作家を信用できないシナリオではないなら、それは必要ではなく、私のクライアントはアイボリー・タワー・アーキテクチャーのために私に支払いません。ビジネスニーズを満たすコードを実行するために私に支払ってください。ほとんどの場合、CASは必須ではありません。

+0

これらの企業では、すべてのエンドユーザーデスクトップが管理者権限で実行されていると言いますか? – JonnyBoats

+0

いいえ、フルトラストは管理者として実行されるわけではありません。完全な信頼とは、それを実行しているユーザーの完全な権限で実行されることを意味します。 –

+0

CASは、アプリケーションを実行しているユーザーをアプリケーションから保護しようとしています。通常のユーザーとして実行されるフル・トラスト・アプリケーションは、管理作業を行うことはできません。 –

関連する問題