問題タブ [code-access-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - コード アクセス セキュリティは .NET Framework 4 でどのように機能しますか?
.NET Framework 4 では、コード アクセス セキュリティが完全に変更されていると聞きました。これがどのように機能するのか、またレガシー アプリケーションにどのような影響があるのか、確認できる人はいますか?
code-access-security - zipファイルへのライセンスキーの追加
zipファイルで出荷される製品があります。ファイルの不正な取引を阻止するために、セキュリティを追加するか、パスワードまたはライセンスキーを追加したいと思います。任意のヒント?
c# - Page.TemplateControl.ParseControl を呼び出すための SharePoint コード アクセス セキュリティ要件
ここで参照されているメソッド Page.TemplateControl.ParseControl を呼び出すための CAS ポリシー要件は何ですか? http://msdn.microsoft.com/en-us/library/kz3ffe28(loband).aspx
具体的には、SharePoint で最小信頼環境でメソッドを呼び出そうとしましたが、ページに次のエラーが表示されます。
タイプ 'System.Security.Permissions.SecurityPermission、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。
ただし、中信頼環境では問題ありません。
ありがとう!
.net - .NETでのDLLへのアクセスの制限
私は会社のために社内ソフトウェアを書いています。
私は常にOOP技術を可能な限り活用したいと思っています。この考えでは、独自に分離されたデータアクセス層(DAL)を作成したいと思います.DLL
。
DLL
DALへのアクセスをビジネスロジックレイヤーのみに制限するにはどうすればよいDLL
ですか?
最後に必要なのは、プログラミングの知識がほとんどなく、.NET Expressをインストールし、自分を参照.DLL
し、実際のシステムの外部でデータアクセスコードを起動するためのシステムへのアクセス(Active Directory経由)を持っている会社の誰かです。DLL
事前に選択されたホストアプリケーション/DLLによってのみ使用されるように制限するために使用できる.NETメカニズムはありますか?
c# - コード アクセス セキュリティの問題 - 何が問題なのですか?
バックグラウンド
アプリケーションの現在のバージョン番号を含むいくつかのバッチ ファイルを生成するために使用するビルド後のイベントがあります。このイベントはバッチ ファイルを呼び出します。バッチ ファイルは、アセンブリを読み込み、リフレクションを使用してそのバージョン情報を見つけるマネージ アプリを呼び出します。
問題
ビルド後のイベントがローカルで実行される場合は、すべて問題ありません。自動ビルド プロセスで実行すると、ログに次のエラーが表示されます。私はコード アクセス セキュリティについて何も知らないので、誰かが問題をすぐに指摘してくれることを期待していました。
.net - 部分信頼アセンブリによって呼び出された信頼済みアセンブリに FullTrust を付与する
次の環境を想像してください: 部分信頼モードで実行されているXBAPアプリケーション (デフォルトの動作。完全な信頼を要求することはオプションではありません。ただし、質問する前に、XBAP に完全な信頼が与えられている場合、すべてが期待どおりに機能します) は、ローカルにインストールされたアセンブリを参照しています。 、GAC にあります。これを実現するためAllowPartiallyTrustedCallers
に、ローカル アセンブリに対して " " オプションを有効にし、完全な信頼も付与します。(これがある種のローカル接続対応物であると想像してください)
(ちなみに、私たちは AllowPartiallyTrustedCallers 属性を使用することのセキュリティ面を認識していますが、これはこの投稿の範囲外ですが、気にしないでください)
ここで、ローカル GAC アセンブリが完全に信頼されていても(いつでも呼び出すことAssembly.GetExecutingAssembly().IsFullyTrusted
でこれを確認できます)、部分的に信頼された呼び出し元 (XBAP) によって呼び出されるため、要求 (暗黙的または明示的) は失敗します。(何か誤解している場合は訂正してください) . 幸いなことに、明示的なアサートを実行して、ローカル GAC アセンブリ内でアクセス許可を取得できます。次に例を示します。
これにより、この時点で完全なスタック ウォーク オン デマンドを回避し、必要に応じてファイル アクセスを実行できます。(繰り返しますが、私を修正してください...) これは実際には完全に機能します! (この場合)
問題は、ファイル IO をまったく行わないことです。実際、外部ライブラリを呼び出しているため、必要なことは何でも実行できます (レジストリへのアクセス、Web サービス要求の作成、書き込みなど、多くのことを行う可能性があります)。ファイルを呼び出し、アンマネージ コードを呼び出します (詳しくはわかりませんが、信頼できます)。部分的に信頼された呼び出し元に到達するためのデマンド スタック ウォークを防ぎます。すべてがローカルにインストールされた信頼できる GAC アセンブリから行われるため、これを実現できるはずです。(繰り返しになりますが、ここではセキュリティの側面は気にしないでください。クライアントを信頼できると仮定してください)
これを解決するためのアプローチ:
私たちが最初に考えたのは、外部ライブラリを操作する前に、ほぼすべてのアクセス許可に対して一連のアクセス許可 (PermissionSet) をアサートすることでした。これはほとんど機能しますが、外部ライブラリが何らかの理由で失敗するスレッドをさらに開始する可能性があるため、または entryassembly にアクセスするために、ある時点でまだセキュリティ例外が発生しているようです。実際にはわかりません。
次に、次の属性を試しました
それもうまくいきませんでした。
3 番目に、新しい AppDomain を開き、完全に信頼された GAC アセンブリを AppDomains エントリ ポイントにして、この appdomain 内で何かを実行することを考えました。残念ながら、これを達成することはできません... または、新しく作成された AppDomain は、「MyComputer」セキュリティ ゾーン Evidence または無制限の SecurityPermission で実行するように設定されていても、さらに多くの要求に失敗します。AppDomain 全体に完全な信頼を明示的に付与することはできません。
第 4 に、caspolの使用はオプションではありません。(配置上の理由により)
さて、これは多くの情報になるはずなので、私たちがアーカイブしたいことを理解していただければ幸いです.
要点を言えば、完全に信頼されたアセンブリは、部分的に信頼された呼び出し元に到達するためにすべてのスタック ウォークを停止して、それが呼び出すアセンブリに完全な完全な信頼をどのようにアサートできるのでしょうか?
事前に多くの感謝
c# - 証拠、セキュリティポリシー、およびアクセス許可を使用して、アセンブリがWebサーバーに読み込まれないようにする
たとえば、Windowsレジストリに書き込む.NETクラスライブラリコードを想定します。次に、このコードはインターネット上で実行するのに問題があります。これは、デフォルトのインターネットポリシーでは、レジストリへの書き込みアクセスが許可されていないためです。
アセンブリにステートメントを追加することRequestMinimum
で、レジストリに書き込むためにコードに書き込み権限が必要であることを指定できます。これにより、コードに権限がないという事実は変わりませんが、アセンブリの読み込みが停止します。ランタイムはをスローし、System.Security.Policy.PolicyException
必要な権限を識別します。
証拠、セキュリティポリシー、およびアクセス許可(コードアクセスセキュリティの重要な要素)を使用して、アセンブリがWebサーバーに読み込まれないようにする他の例はありますか?
.net - 新しいバイナリをC:\ Program Filesにコピーするにはどうすればよいですか?
自動的に更新されるWindowsアプリを作成しています。さまざまな理由でClickOnceを使用していません。更新したファイルをWindows7のC:\ Program FilesにFile.Move()しようとすると、次のエラーが発生します。
パス'C:\ Program Files \ <company> \ <app>\<app.exe>'へのアクセスが拒否されました。
UACプロンプトが表示されません。更新しようとしているexeは現在実行されていません。
c# - ライブラリ コードでコード アクセス セキュリティが許可されているかどうかを確認する方法
.NET 4 では、コード アクセス セキュリティ (CAS) は非推奨です。暗黙的にそれを使用するメソッドを呼び出すたびに、古い動作にフォールバックする構成スイッチNotSupportedException
で解決できるで失敗します。
.NET 3.5 と .NET 4 の両方で使用される共通のライブラリがあるため、CAS メソッドを使用する必要があるかどうかを判断できる必要があります。
たとえば、.NET 3.5 では、次のように呼び出す必要があります。
一方、.NET 4では呼び出したい
を呼び出すLoad(string, Evidence)
と、 がスローされNotSupportedException
ます。
もちろんこれは機能しますが、より良い方法があるかどうか知りたいです。