問題は「どちらか一方」ではありません。それらは異なる質問です。ローカル コンピューターからリモート サーバーに送信するファイルを選択できるようにすることであれば、それはごく日常的なことです。たとえば、ファイルを電子メールに添付している間、常にそれを行います。ファイルの選択を開始するのはユーザーであり、Web アプリに送信するのはユーザーのファイルです。ここにはセキュリティ ホールはありません。
クライアントがサーバー コンピューターであらゆる種類のファイルを参照できるようにする必要がある場合、それ自体はセキュリティ ホールではありません。それはあなたが望んでいたものです、あなたはそれを手に入れました。これは、クライアントがサーバー上のどのディレクトリからでもファイルを取得できるようにする必要があることを意図していない場合にのみ、セキュリティ ホールになります。多くの場合、クライアントにサーバー上のすべての包括的なファイルへのアクセスを許可したくないため、このシナリオ全体はセキュリティの問題として分類されます。通常、クライアントは特定のファイルのみにアクセスできる必要があります。仮想ディレクトリに制限することは、それを行う 1 つの方法です。たとえば、クライアントが Web サイトのすべてのユーザーの記録を含む実際の DB ファイルを取得し、その DB ファイルを自分の DB にロードできるようにしたいですか?
それを超える必要がある場合は、特定のファイルのみへのアクセスを許可するメカニズムを実装する必要があります。Web サーバーは、サーバー OS 上の一部のユーザーのコンテキストで実行されていることを思い出してください。クライアント要求がサーバーに到達すると、コマンドが実行される Web サーバー ユーザーになります。そのため、その Web サーバー ユーザーのアクセス許可を設定するだけではセキュリティを実現できません。