2016-09-16 10 views
0

は、現在、私のファイル構造は次のとおりです。自分自身でログインしているユーザーのユーザー名に関連する私はフォルダを持っているusersフォルダの内部へのアクセス、ファイル

├── README.md 
├── app 
├── classes 
├── composer.json 
├── composer.lock 
├── database 
├── public 
├── templates 
├── users 
└── vendor 

、各ユーザーが定義したファイルおよびフォルダ

私が遭遇してるの問題は、私がusersディレクトリ内のファイルをダウンロードすることができませんということです。現在、私はpublicディレクトリの中usersディレクトリを移動することによって、作業私のコードを持っていますが、これにはかなり明らかなセキュリティ上の欠陥があります。私のユーザディレクトリはここに示すように、ルートから1レベル上にありますが、まだpublicディレクトリでアクセスできるようにしますか?

私はすでにRewriteRule users/ ../users/を使用してみましたが、動作するようには思えません。 publicフォルダのフロントコントローラではなく、PHP経由でusersディレクトリにアクセスできます。

これはので、私はこの全体のフロントコントローラ/ MVC型のものに非常に新しいですスリムを使用して私の最初の「本当の」プロジェクトです。どんな助けも素晴らしいでしょう、ありがとう!ユーザーを検証する必要があると思い、あなたのルーティングロジックまたはコントローラで

+0

Ok。したがって、Webサーバー上の書き換えルールは、ユーザーが認証されているかどうかを知ることができないため、書き換えルールはこれを解決しません。ユーザーのアクセス許可に基づいてユーザーファイルを提供するために、アプリケーション内にルーティングロジックを記述する必要があります。 1つの質問/回答でカバーするには広すぎます。 – Devon

+0

@Devonユーザーがファイルをクリックしたときにget要求を送信すると、そのファイルを取得するルートが呼び出されます。これは、この種のことをやり遂げるための実行可能な方法でしょうか?もちろん、このルートは、フォルダが自分のものであることを検証します。 –

+0

はい、それはあなたがする必要があるでしょう。あなたのルーティングロジックやコントローラでは、ユーザが上記ファイルへのアクセス権を持っていることを確認する必要があります。その場合、Webパスからアクセスできないため、PHPを使用してファイルを処理します。 – Devon

答えて

1

は、ウェブパスにアクセスできないので、その後、最も可能性の高いファイルを提供するためにPHPを使用して、言ったファイルへのアクセス権を持っています。 PHPで

、あなたは適切なHTTPヘッダーを設定してのReadFile()を使用し、エンドユーザーにファイルを提供することができます。

関連する問題