2

クライアントがデスクトップ アプリケーションをインストールしてログインした場合に、より適切に機能する Web サイトを持っているとしましょう。私は2つのことをできるようにしたいと思います:

  • アプリをインストールしていない場合は、Web サイトを変更します (インストーラーへのリンクを簡単に見つけられるようにするため)。
  • 2 台のマシンにアプリをインストールした場合は、どのマシンからブラウジングしているかを判断します。

Windows と OSX、主要なブラウザーのいずれかで動作するものが欲しいです。Linuxはボーナスです。

いくつかの考え:

  • Web サイトは、Flash がインストールされているかどうかを検出できます。それはどのように機能し、私の両方の目標に使用できますか?
  • クライアントに localhost で HTTP を提供させ、ローカル ID を取得するためにいくつかの JavaScript 要求を実行させることはできますか? Google デスクトップ検索が、ある時点でこのようなことをしたことは知っています。これは標準的な方法ですか?

ありがとう!

4

5 に答える 5

4

デスクトップ アプリケーションからプロトコルを登録できます (このを参照してください)。これは、たとえば、Web サイトからの任意のデータでデスクトップ アプリケーションを開くために使用できます。次に、デスクトップ アプリから Web サーバーに HTTP 要求を送信して、現在使用しているマシンを伝えることができます。

于 2008-10-01T20:20:26.353 に答える
2

アプリケーションと通信できるブラウザ プラグイン (IE の場合は activex、残りのブラウザの場合は Netscape プラグイン) を使用できます。Web ページがロードされると、プラグインのインスタンス化を試行できます。成功した場合は、それをアプリケーションへのプロキシとして使用できます。失敗した場合は、アプリがインストールされていないか、プラグインがユーザーによって明示的に無効にされています。いずれにせよ、Web サイトはそれに応じて機能を低下させる必要があります。

更新:質問に答えるのを忘れました:

  1. Flash はまさにこの方法でそれを行います。Flash は、Web ページによって作成されるブラウザ プラグインです。
  2. アプリケーション/プラグインのインストール時にマシン ID を生成することができ、プラグインは作成時にそのマシン ID を Web ページに渡すことができます。

ローカル Web サーバーの使用に関するトピックについて:

主にセキュリティ上の理由から、ローカル Web サーバーを使用しないようにします。ローカル Web サーバーが十分にロックダウンされていること、および他の悪意のある Web サイトが自分の代わりに何かを実行するために悪用できる XSS 脆弱性がないことを確認するには、かなりの作業が必要です。

さらに、Web サーバーを持つということは、システム全体のプロセスとして実行する必要があることを意味します。または、ユーザーとして実行する場合は、複数のユーザーがログオンできる場合でも、アプリケーションの 1 人のユーザーのインスタンスとのみ Web サイトを対話させることができます。同時に実行します。

Google デスクトップ サーチは、XSS セキュリティの脆弱性 (修正されましたが) と、1 台のマシンで 1 人のユーザーしか使用できないという制限 (修正されたかどうかはわかりませんが、おそらく修正されている可能性があります) の両方に悩まされていました。 .

于 2008-10-01T20:16:40.217 に答える
1

Web サイトは、Flash がインストールされているかどうかを検出できます。

実際、ブラウザは、ブラウザ用の Flash プラグインがインストールされているかどうかを検出でき、Web ページはブラウザが選択できる「インストール済み」および「アンインストール済み」オプションを提供できると思います。

それ以外の場合は、コードを Web ページに配置して、ユーザーの自宅のコンピューターを分析し、学習した内容を Web サイトに報告できる手段を求めています。

メジャーセキュリティホールと言えますか?

于 2008-10-01T20:20:28.087 に答える
0

デスクトップ アプリの開発環境を選択できる場合は、Adobe の AIR をチェックしてください。html/javascript、Flash、Flex のいずれかを使用してデスクトップ アプリケーションを開発できます。

デスクトップベースの AIR アプリがインストールされているかどうか、バージョンなどを確認するためにブラウザーベースの Flash アプリから使用できる API 呼び出しがあります。それを起動して、Web アプリからデスクトップアプリにパラメーターを渡すこともできます。

http://www.rogue-development.com/blog2/2008/03/interacting-with-an-air-app-from-a-browser-based-app/

于 2008-10-01T20:17:24.177 に答える
0

Web サイトは、Flash がインストールされているかどうかを検出できます。それはどのように機能し、私の両方の目標に使用できますか?

それは非常に簡単です.ブラウザはフラッシュなどの特定の形式でいくつかの追加ファイルをレンダリングしようとしますが.swf、ブラウザはインストールを見つけられず、ダウンロードを開始するか、そのプログラムをダウンロードするオプションが表示されます. Flash もAC_RunActiveContent.jsこの js を見てください。人々は通常、これを Web ページに配置します。

if (AC_FL_RunContent == 0) {
    alert("This page requires AC_RunActiveContent.js.");
} else {
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave cabs/flash swflash.cab#version=8,0,0,0','width','981','height','635','id','build5','align','middle','src','build5','quality','high','bgcolor','#ffffff','name','build5','allowscriptaccess','sameDomain','allowfullscreen','false','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','build5' ); //end AC code
}
于 2008-10-01T20:21:41.453 に答える