2016-09-02 11 views
0

私はdropboxに似たウェブサイトを作成しています。このプロジェクトの背後にある私の論理は、ユーザー名とパスとユニークIDを含む1つのテーブルを作成することです。dropbox、googleドライブのようなウェブサイトの背後にあるロジック

私は一意のコードの名前でフォルダを作成し、その特定のフォルダにvideo、mp3、txtのような特定の人物ファイルを保存します。私の質問は、他のユーザーがそのフォルダに入ることを制限する方法です(私はそのフォルダに直接URLを入力してアクセスすることができるからです)。

他のロジックが効率的であれば、私にもお勧めします。私はミニプロジェクトに取り組んでいます。

+0

パブリックにアクセス可能なフォルダにユーザーファイルを保存しないでください。それらをウェブルートの外に保存し、PHPを通してそれらを提供してください。 – jeroen

+0

これまでに試したことを示すために質問を編集してください。問題を抱えているコードの最小、完全、および検証可能な例を含める必要があります。次に、特定の問題の解決に役立てることができます。 – Atf

答えて

1

私は、Googleドライブ(とDropboxプローブもあまりにも)、舞台裏でhttpsを使用すると信じています。その場合は、単にあなたのphp/aspファイルが、ログオンしているユーザーだけが自分のファイルにアクセスできることを確認する必要があります。それはあなたのクラウドプラットフォームをどのように作成するかによって異なります。また、scp、sshを使用することもできます。その場合、サーバは自動的にクライアントコマンドを自分のファイルに送ります。

+1

HTTPSはこれとは関係ありません。アクセスを制限してPHPログインに関連付けるには、URLをPHPスクリプトに書き換えてアクセス権をチェックする必要があります。 –

+0

あなたができることは、非PHPファイルをパブリックフォルダの外にある別のディレクトリに置くことでアクセスできないようにすることです。その後、PHPバイナリストリームをクライアントに送るphpファイルを作成します。これは、phpファイル*がファイルにアクセスできるためです。しかし、彼がhttp(s)を使用しているのかどうかは分かりませんが、完全に異なるプロトコルを使用するクライアントを作成する可能性があります。その場合、scpを使用してsshキーを使用してファイルにアクセスできます。 – Saskia

0

ファイルへのアクセスを処理するコントローラを作成する必要があります。たとえば、引数を/myFolder/myImg.jpgとして渡した場合、コントローラはlogedin user unique_idとそのパスを引数として取り、自己のパスを作成します。

2323年から2332年-a51df/MYFOLDER/myImg.jpg

アイデアはユニークIDがベースパスとなると、あなたのコントローラは、すべてのファイルアクセスを処理するということです。あなたは777何かをchmodする必要はありませんこのように。あなたのコントローラはあなたが必要とするフォルダだけにアクセスすることができ、すべてはあなたのPHP設定のままです。任意のシステムフォルダにアクセスしようとする人を心配する必要はありません。

次に、ファイルの内容を読み込み、適切なMIMEタイプで返すだけで済みます。

関連する問題