0

PHP でユーザーのデスクトップ上のファイルを開く方法があるかどうかを調べようとしています (つまり、ユーザーが PHP ページに表示されたファイル リストからファイルを選択すると、そのファイルは適切なプログラムで開かれます)。ユーザーがGUIでダブルクリックしたかのように、ユーザーのデスクトップに表示されます。)しばらく検索した後、PHPのCOMオブジェクトを使用した複雑に見えるコードを介してこれが可能であることを発見しましたが、これはWindowsユーザーに対してのみ機能します私はこのプラットフォームにとらわれないようにしています。

他の誰かがこれをやろうとして成功したことがありますか?

4

2 に答える 2

1

ユーザーのマシン上でアプリケーションを実行するには、長い「ユーザーの同意」プロセスを経るか、ユーザーが自発的に (理想的には意識的に) ソフトウェア コンポーネントをインストールする必要があります。

最もクリーンな方法は、(署名された!) Java アプレットを使用することだと思います。

それ以外の場合は、適切なプロトコルハンドラーを使用してユーザーに特定のプロトコルを登録させて、ユーザーのシステムにダウンロードしてインストールし、次のようなリンクを傍受できるようにすることができますexec://format%20C%2C;-)

残念ながら、file:// プロトコルは (当然のことながら) 制限されています。たとえば、Firefox では、アドレス バーに手動で「C:\」を挿入してナビゲートすると、(ある程度) 機能します。これらのリンクをクリックすると、(ある程度) 機能します。ドキュメント内の同じリンクを別のセキュリティ コンテキスト (インターネットなど) にコピーすると、驚くべきことに、それは機能しません。

もう 1 つの可能性は、ええと、REXECd (ほとんどのプラットフォームで利用可能) または何らかのクローンを使用して、すべてのイントラネット クライアントをバックドアすることです。次に、ユーザーがクリックすると、コマンドが PHP からユーザーのワークステーションに送信されます。最近の PC はマルチユーザー プラットフォームであるため、その行為を行う方法を決定するには、いくつかの簡単な調査が必要です。たとえば、Linux ボックスでは、適切な所有権とDISPLAY値で X アプリケーションを実行する必要があります。

また、ユーザーのプラットフォームを「認識」して、ユーザーが適切なバッチ ファイルをダウンロードできるようにすることも.shでき.batます.cmd。ただし、クリックしてダウンロードし、承認し、実行可能ファイルを開く必要があります。

于 2012-10-16T22:36:23.120 に答える
0

クライアントでファイルを実行することはできません。これは大きなセキュリティ ホールであり、ブラウザはそれを許可しません。

Windows では ActiveX を使用できますが、クライアントは ActiveX コンポーネントのインストールを許可する必要があり、多くの問題が発生します。

于 2012-10-16T22:16:56.387 に答える