2016-09-15 3 views
1

私は現在、Slim 3を使用して単純なファイルホスティングスクリプトを構築しています。現在、自分のパブリックディレクトリと同じレベルのユーザーフォルダを持っています。これで、ユーザーフォルダ内のファイルにアクセスしようとしているので、ドキュメントルートがユーザーフォルダにアクセスできないためにエラーが発生しています。私のパブリックフォルダの中にユーザーフォルダを置くことは、技術的にはログインしたユーザーの公開情報になるので、より良い考えですか?ユーザーフォルダはSlim 3プロジェクトのどこにあるべきですか?

答えて

1

これらのファイルは、特定のユーザー専用である場合、またはすべてのユーザーが使用できる場合にのみ表示されます。

ファイルをプライベートにする必要がある場合、誰もがURLをハックしてそのファイルにアクセスできるため、ファイルを公開することはできません。したがって、dataディレクトリに入れて、/file/{username}/{name}のようなエンドポイントを使用して利用可能にする必要があります。

このようなエンドポイントでは、ファイルタイプについてヘッダーを簡単に追加することも、ブラウザーウィンドウにダウンロードしたり表示したりすることもできます。その他の資産として、デフォルトで処理されますどのようなWebサーバーに公開する

+0

私は、ログインしたユーザーのユーザー名とパラメーターをURLから取得するルートファイルを作成しました。完璧に動作します。ありがとう。 –

+0

ただし、共有していないユーザーは自分のファイルにしかアクセスできません。 – danopz

+1

実際のパスは 'username/file'のようには表示されません。ダウンロードされるファイルとusersフォルダの下にあるフォルダだけが表示されます。ダウンロードするファイルのユーザ名部分がPHP経由で動的にロードされているため、ユーザはこれを見ることはなく、変更する方法もありません。 –

1

  • そのURLはURLを知っていれば、あなたがそれをダウンロードすることができ、実際のファイル名
  • に基づいています
  • それはあなたは確かにこのすべての懸念に対処することができます(そのうちのいくつかもあなたのユースケースについての懸念ではないかもしれない)それは

に実行されます.phpファイルなら私これが典型的なユーザー管理のディレクトリツリーの理想的なレイアウトだとは思わないようにしてください。あなたの現在のアプローチは私にはもっと意味があります。

このようなファイルにアクセスするには、すべての適切なチェック(アクセスチェックなど)を行い、URLからのファイルシステムを照合し、そのアセットを静的ファイルとして提供する適切なダウンロードスクリプトを作成する必要があります。スリムでは、パラメータを持つルートを作成し、これらのすべてを行うハンドラ関数を記述することを意味します。

関連する問題