2016-09-02 11 views
0

Ich erstelle Website, die Dropbox ähnlich ist. Meine Logik hinter dem Projekt ist, dass ich 1 Tabelle erstellen werde, die den Benutzernamen und den Pass sowie die eindeutige ID enthält.Logik hinter Websites wie Dropbox, Google Drive

Dann werde ich Ordner mit dem Namen des eindeutigen Codes erstellen und ich werde diese bestimmte Person Datei wie Video, MP3, TXT in diesem bestimmten Ordner speichern. Nun meine Frage ist, wie andere Benutzer davon abgehalten werden, in diesen Ordner einzutreten (weil ich auf diesen Ordner zugreifen kann, indem ich direkt die URL eingebe)?

Auch vorschlagen, wenn eine andere Logik effizienter ist.Ich arbeite an Mini-Projekt.

+0

Speichern Sie Benutzerdateien niemals in öffentlich zugänglichen Ordnern. Speichern Sie sie außerhalb des Web-Root und bedienen Sie sie über PHP. – jeroen

+0

Bitte bearbeiten Sie Ihre Frage, um zu zeigen, was Sie bisher versucht haben. Sie sollten ein minimales, vollständiges und überprüfbares Beispiel für den Code angeben, mit dem Sie Probleme haben, und dann können wir versuchen, mit dem spezifischen Problem zu helfen. – Atf

Antwort

1

Ich glaube, dass Google Drive (und Dropbox auch protzig), https hinter den Kulissen verwenden. In diesem Fall müssen Sie nur sicherstellen, dass Ihre PHP/ASP-Dateien sicherstellen, dass nur der angemeldete Benutzer auf seine Dateien zugreifen kann. Alles hängt davon ab, wie Sie Ihre Cloud-Plattform erstellen. Sie könnten auch scp, ssh verwenden, in diesem Fall leitet Ihr Server den Client-Befehl automatisch zu seinen eigenen Dateien.

+1

HTTPS hat damit nichts zu tun. Wenn Sie den Zugriff beschränken und ihn dem PHP-Login zuordnen möchten, müssen Sie die URL in ein PHP-Skript umschreiben, das die Berechtigungen überprüft. –

+0

Sie können die Nicht-PHP-Dateien in einem separaten Verzeichnis außerhalb des Öffentlichen Ordners ablegen, damit nicht darauf zugegriffen werden kann. Erstellen Sie dann eine PHP-Datei, die einen Header-Binär-Stream an den Client sendet, da die PHP-Datei * auf die Datei zugreifen kann. Aber ich bin nicht sicher, ob er http (s) verwendet, er könnte auch einen Client erstellen, der ein komplett anderes Protokoll verwendet, in diesem Fall könnte er scp verwenden und einen ssh-Schlüssel verwenden, um zu den Dateien zu gelangen. – Saskia

0

Sie müssten einen Controller erstellen, der den Zugriff auf Dateien behandelt. Wenn Sie Ihre Argumente als /myFolder/myImg.jpg übergeben, würde der Controller den loged-Benutzer unique_id und den Pfad als Argumente nehmen, und dann würde er einen Pfad selbst erstellen.

2323-2332-a51df/myFolder/myImg.jpg

Die Idee ist, dass der uniqueID als Basispfad dienen wird, und die Controller werden alle Dateizugriffe handhaben. Auf diese Weise müssen Sie nichts 770 chmod. Ihr Controller hat nur Zugriff auf die Ordner, die Sie benötigen, und alle bleiben in Ihren PHP-Einstellungen. Sie müssen sich keine Sorgen machen, dass jemand versucht, auf Systemordner zuzugreifen.

Neben dem müssten Sie nur den Inhalt der Datei laden und es mit dem passenden Mime-Typ zurückgeben.

Verwandte Themen