2011-01-05 10 views
2

私は "Sandbox Ironpython"を参照しています。AppdomainはIronPythonをサンドボックス化する唯一の方法ですか?

私はオリジナルポスターとは多少異なる要件があります。具体的には、私たちが限定されるように異なる機能を必要とする

を - ファイルシステムへのアクセスは大丈夫です、標準のpythonモジュールのほとんども大丈夫ですが、ほんの数明示。 NET dllは許可されます(私たちが提供する "公式" APIにPythonスクリプトを制限したい)。 AFAICでは、これはPythonのimport文の実装にフックする必要があります。

これを達成する方法はありますか?

ありがとうございます!

答えて

4

はい、AppDomainsが唯一の方法です。 .NETサンドボックスを介してアクセスを制限すると、標準ライブラリを使用してできることはすべて、適切に制限されます。だから、なぜPythonスクリプトのいずれかを制限するのを邪魔しますか?彼らはあなたが他に許さなかったことをすることはできません。

1

他の人がこれほど多くの時間を無駄にしないように、私はこれを投稿しています。

が「REPRO、試料中にSecurityExceptionがIronPythonのセキュリティ透明コードためにスローされている:あなたはos.py使用しようとすると何が起こるかに応じて、CLRセキュリティチームのシニア開発者から

セキュリティ上重要なコード(GCHandle.Free)が呼び出されており、無制限のアクセス許可が求められています。

それはそれにそれが必要とする権限付与することはできません。

あなたはそれが仕事を得ることができたとしても、「PermissionState.Unrestrictedまで追加権限のない設定されていない」と、 AppDomainサンドボックスは価値がありません。

「信頼できないコードをサンドボックス化する限り、すぐに部分的な信頼をセキュリティの境界として使用しないでください」という新しいガイダンスがリリースされます。完全なガイダンスは ".NET Frameworkは、コードアクセスセキュリティ(CAS)と呼ばれる同じアプリケーションで実行されている異なるコードに対するさまざまなレベルの信頼の実施の仕組みを提供します。 .NET Frameworkのコードアクセスセキュリティは、部分的に信頼できるコード、特に不明なコードを持つセキュリティ境界として使用しないでください。代わりのセキュリティ対策を講じずに、不明な起点のコードを読み込んで実行することをお勧めします。」

関連する問題