1

COM を介して、ターゲット システムを完全に制御できる可能性があります。たとえば、IE で javascript の ActiveXObject オブジェクトを使用すると、システム プロパティやファイルに直接アクセスしたり、それらと対話したりするように設計された特定のオブジェクトを作成できます。常識的に考えると、ユーザーはブラウザをインストールした直後に IE の ActiveX 機能を無効にして、ネットサーフィンをしている間、または少なくとも許可する Web サイトに細心の注意を払ってシステムが保護されていることを確認する必要があります。しかし、多くの平均的な PC ユーザーが、これを行う方法や理由を知っているか、時間の経過とともにマイクロ管理にうんざりしているとは思えません。私のCOMクラスが対応しているPCユーザーまたは管理者は、それに対処する必要がないことを大いに感謝すると思います。ありがたいことに、最近の IE バージョンにはデフォルトで ActiveX が無効になっているパッケージが付属しているようです。

VB で非常に用途の広い COM クラス ライブラリを作成しました。どの Web サイトからでも呼び出せるようにするつもりはありませんでしたが、その機能は COM プラットフォームの一部にすぎません。Web サイトがホワイトリストに登録されたドメインにない限り、ライブラリが IE から呼び出されないようにして、ユーザー (および最終的にはイントラネット全体) を悪意のある Web サイトからの被害から積極的に保護したいと考えています。VB.Net で、どのアプリケーションが私の DLL を呼び出したかを判断し、それが IE から発信されたコマンドまたはプロセスから呼び出されたかどうかを判断できるようにするための最良の方法は何でしょうか? そして、私のdllと呼ばれるドメインは何ですか?

編集:これは重複している可能性があると思います。参照:アセンブリを呼び出してアプリケーション名 VB.NET を取得する

System.Environment.GetCommandLineArgs()(0)呼び出し元のアプリケーション パスを取得します。この情報を使用して、アプリケーションのブラック/ホワイト リストと比較できます。とりあえず問題解決。

4

2 に答える 2

2

コントロールをスクリプトを実行しても安全であるとマークしないでください。

デフォルトのセキュリティ設定では、そのようなコントロールをスクリプト化することはできません。

于 2010-10-15T01:41:52.977 に答える
0

自己回答、そしておそらく重複していると思います。アプリケーション名VB.NETを取得するには、アセンブリの呼び出しSystem.Environment.GetCommandLineArgs()(0)からを参照してください。

この場合、クラスはスクリプトに対して安全であるとマークされることはなく、その意図はすでに安全であるとマークされることはありませんでした。問題は、呼び出し元のアプリケーションが持っていたものが十分でない場合に備えて、追加のセキュリティ対策を追加できるように、呼び出し元のアプリケーション情報を取得する方法でした。

于 2010-10-29T01:53:39.993 に答える