他の誰もがSilverlight 4のセキュリティは少しねじっていると思いますか?次のシナリオで私はSilverlight 4のセキュリティを理解するのに助けが必要です
ルック:
- シルバー、信頼できるアプリに設定され、ブラウザモードを使い果たし、あなたがファイルを開くダイアログを使用してファイルを参照することができます。
- COMオートメーションからファイルを開くには、ファイルのパス名が必要です。例えば(excel/word)としますが、これは何でもかまいません。
- セキュリティ制限のためダイアログからファイルの完全なパスを取得することはできません
- ただし、COM FileSystemObjectを使用することができます。フォルダの作成、ファイルの移動、削除。
つまり、なぜ実際にCOMを使用してファイルにアクセスできるようになると、実際のビジネスユースケースを実際に妨げるSilverlightのセキュリティについて大騒ぎになるのですか?
別の言い方をすると、ユーザーが悪意のあるSilverlightアプリを実行した場合、そうは思わないでしょう。 COMは後でSilverlightアプリケーションによって呼び出されました。ここで
は- ユーザーはファイルを閲覧する....私が何を意味するかである - C:\ myFile.xls Silverlightは(セキュリティ上の理由から)パスを得ることからあなたを防ぐ
- シルバーのみ
- COMを使用すると、バックグラウンドでファイルシステムにこれまでどんなことをしてもかまいません。あなたが名前を知っていれば、今すぐ私の文書にそのファイルをコピーすることを含む!しかしそれ以外にも、使用していないファイルがあればそれを消去することができます。私の意見Silverlightのセキュリティモデルでは
は欠陥がある、どちらか彼らは、開発者に完全な信頼を与え、彼らはSilverlightがCOMへのアクセスを許可されていないローカル
または
を実行していたかのように、私たちは、アプリケーションを実行できるようにしている必要があります。
私はそれだけですか、他の誰かがその悪い実装を見ているのですか?
これは、セキュリティ警告をトリガ:
OpenFileDialog flDialog = new OpenFileDialog();
FileInfo fs = flDialog.File;
string fileName = fs.FullName;
これは私があなたの視点に同意しない
dynamic fileSystem = AutomationFactory.CreateObject("Scripting.FileSystemObject");
fileSystem.CopyFile(anyFileName,anyDestination);
何がいいですか、単にダイアログボックスからファイルを取得することができます。私はセキュリティの制限をスローするとは思わない。私はこのことをすることができないので、JavaやAdobe Airのような他の詐欺師を見たり、サーバー側のソリューションを使わなければなりません。この場合、結果は残念ながらSilverlightはこのビジネス要件の使用例を処理できません。 –
慎重であれば、COMをまったく許可しないでしょう。 –
@JL:あなたは私の意見を忘れてしまったと思います。 Automation.Factoryは信頼できるアプリケーションで使用するために__only__存在します。この新しいコードは、このシナリオ用に特別に追加されました。このシナリオの外での使用を完全にブロックするのは簡単です。 SL4より前に存在しなかったため、既存のコードは使用されません。これは、アプリが信頼できるモードでインストールされているかどうかによって、既存のコードの動作を微妙に変更することとはまったく異なります。 – AnthonyWJones