2012-03-13 9 views
0

ウェブブラウザ経由でクライアントのシステムにユーティリティをインストールするjavascriptを実行しようとしています。これらはビジネス上の必要条件なので、私と一緒に裸にしてください。私はトリックを行う何かを一緒に置いているようだが、そうするためにはIEのブラウザの設定を変更して "スクリプト作成に安全とマークされていないActiveXコントロールの開始とスクリプト"を有効にする必要がある。これは明らかに現実の世界では機能しません。この設定を有効にしないと、Webブラウザに表示されるのは、Webブラウザの下部にある慎重な "Error on Page"です。最終的には、クライアントにActiveXコントロールを実行するように指示されるように、スクリプトに安全とマークを付けたいと思っています。だから私の質問は、私はどのように安全なJavaScriptをマークするのですか?また、Webのページは.NETのカミソリのエンジン(MVC3)を使用して作成されるため、互換性のあるソリューションが非常に高く評価されます。安全なJavaScriptとしてマーク

cshtml snippet 

script language=JavaScript 

function launchExecutable(executableFullPath) 

{ 

var shellActiveXObject = new ActiveXObject("WScript.Shell"); 

shellActiveXObject.Run(executableFullPath, 1, false); 

shellActiveXObject = null; 

} 

script 
.... 
+0

これが可能であれば、ブラウザ固有のセキュリティ設定はまったく意味のないものになります。 – BalusC

+0

ActiveXコントロールを実行しても(デジタル署名が認証されていますか?)、いくつかの問題があります。 'Run'はユーザのデフォルトブラウザを開くだけです(新しいタブ)。 "executableFullPath"が "http-protocol // executableFullPath.exe"のようなものであれば、ブラウザを通過しません。 – Teemu

答えて

0

問題は、それはあなたが使用しているActiveXコントロールがスクリプトを実行しても安全であるとしてマークされていないことですが、あなたのJavascriptが安全ではないということではありません。これを回避する唯一の方法は、安全とマークされたActiveXコントロールを使用することですが、クライアントにそのコントロールをインストールさせる必要があります。

エラーを検出して(try/catchを使用)、そのオプションをオンにする方法をユーザーに知らせるメッセージを表示する方法を取っています。

+0

私はすべてのあなたの答えに感謝します。私は毛深い質問をしていることを知っていた。これらはビジネス要件であり、ビジネスの人々がどのように夢のようにしているか知っています。 ActiveXコントロールを安全なものとしてマークするにはどうすればよいでしょうか。私はまだフロントエンドのノブですので、私は何か提案を感謝します。 – user1013651

+0

@ user1013651 AFAIKあなたはActiveXコントロールの開発者でない限り、あなたはできません。それを安全とマークするためにコードを変更する必要があり、再コンパイルされたコントロールはすべてのクライアントマシンにインストールする必要があります。私は本当にあなたがこれを行う別の方法を調べるべきだと思う...これらのセキュリティ設定は理由のために存在し、この特定のコントロールでは、任意のシェルコマンドを実行するランダムなWebサイトからユーザーを保護することです。 –

+0

@ user1013651代替手段として:1.アプリケーションを標準インストーラとして提供することができます。 2.インストールしようとしているアプリケーションを開発している場合は、ブラウザからインストールするClick-Onceアプリケーションにすることができます。 3.独自のActiveXコントロールを開発してアプリケーションをインストールすると、コンポーネントをインストールするために必要な標準IEメッセージが表示されるため、ユーザーが簡単になります。 –

1

ウェブサイトにのブランケットは完全なユーザー権限で何でもしてもらえるため、安全とマークされたActiveXコントロールを取得することはできません。

私が今までに見たウェブサイトでは、あなたが話しているようにアプリケーションをインストールしていません。彼らは、ブラウザに最初にインストールされ、アプリケーションをダウンロードしてインストールする(個人的には私が嫌いだが)、クライアントが使うことを期待しているブラウザごとにブラウザプラグインを持っているか、単に.exeにリダイレクトするまたは.msiまたは.deb、またはユーザーがダウンロードとインストールを開始するためにダイアログボックスをクリックする必要があるインストーラ。

後者のJavascriptは単純なリダイレクト(必要な場合)です。ウェブサーバー上には、提供しているファイルのMIMEタイプが適切かどうかを確認する作業がすべて含まれています。

関連する問題