web-dev-qa-db-ja.com

ブラウザにローカル/ネットワークファイルシステムのリストを開かせるリスク

ブラウザーは通常、セキュリティ対策としてWebページがクライアント側のファイルシステムと対話することを許可しません。次のシナリオで何が問題になるのか知りたいのですが。

ブラウザーで特別なハイパーリンクをクリックすると、Windowsファイルエクスプローラーでリンク指定フォルダーが開きます。

これを達成するためのステップ:

  1. プロトコルハンドラアプリケーションがブラウザマシンにインストールされます。
  2. nfx:プロトコルに登録します(mailto:プロトコルを登録するメールクライアントと同様)。
  3. ユーザーがhref="nfx://machinename/share/folder/"のハイパーリンクをクリックすると
  4. プロトコルハンドラーアプリケーションは、ブラウザーによってプロセス引数として上記のURLで起動されます。
  5. すべての/はパス区切り文字に変換されます(例:\)。nfx:はURLの先頭から削除されます。そして、ディレクトリが存在する場合、結果\\machinename\share\folder\がチェックされます。
  6. 存在する場合、ユーザーはこのフォルダーを開くかどうかを確認するよう求められます。ユーザーが確認すると、Explorer.exeがパラメーターとして\\machinename\share\folder\で起動されます。
  7. プロトコルランチャーアプリケーションが終了します。

なぜこれが行われたのですか(これがXY問題の場合):

  1. 定期的に更新されるインストーラーをネットワークパスに保持する必要があります。
  2. Webページに、使用可能なすべてのインストーラーが一覧表示されます。
  3. リンクをクリックすると、ユーザーはインストーラーの場所に移動します。
  4. ウェブページからインストーラをダウンロードしたり、直接起動したりすることは想定されていません。ユーザーは、Windowsエクスプローラーでフォルダーを開いたら、インストーラーを実行するかどうかを決定できます。

このようなネットワークフォルダーまたはローカルフォルダーを開くのはどのくらい危険ですか?

2
AEonAX

私が気に入らないのは、ネットワークパスです。

パスにパスで許可されていない文字が含まれておらず、パスがフォルダーであり、ローカルマシン上にある場合は、パスをチェックする必要があります。

ただし、リモートファイルシステムを許可すると、Webページが突然、未知のシステムへの安全でない可能性のある接続を要求することを許可し、Microsoftからすべての人のブラックボックスアプリにゴミの全範囲を送り返す可能性があります。 Explorerには、ここで悪用される可能性のある脆弱性が存在する可能性があります。

2
Peter Harmann