Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: Eine Dateistruktur für persönliche, sensible Daten
erste ungelesene Seite | letzter Beitrag 
Limbi

Arctic
In einer cloudbasierten Software, wo alle Anwender eine eigene Datenbank verwalten, sollen sie neu die Möglichkeit erhalten, Dateien hochzuladen. Aber nur eingeloggte sollen zu ihren (und nur zu ihren) Dateien auch Access haben. Wie würdet ihr die Dateistruktur für die User aufbauen, gerade wenn es um heikle Dateien geht?

Eine erste Idee:
Per Drag and Drop wird die Datei in ein JQuery Container verschoben, dieser lädt es in einen universellen, gemeinsamen Ordner hoch und wandelt den Dateinamen in ein Hashcode um, dieser Code wird in die Datenbank gespeichert und die Datenbank entscheidet, in welchem "Ordner" sich die Datei befindet. Der Ordner dabei ist nur virtuell in der Datenbank vorhanden, der physikalische Pfad dabei ist der Pfad zum Datei mit dem Hashcode.


Also z.B. haben wir ein Projekt:

./
libraries/
js/
css/
modules/
index.php


Wo würdet ihr den Ordner für die User platzieren?
Würdet ihr ein "Data" Ordner erstellen und dort alle hochgeladenen Dateien reinklatschen?

./
libraries/
js/
css/
modules/
index.php
data/


Sollte innerhalb dieses Data-Folders dann ein Ordner mit der Benutzer-ID erstellt werden? Sollen die User selber "physikalische" Ordner erstellen können? Oder soll doch alles über die DB laufen?

Fragen über Fragen. Solltet Ihr Euch fragen wofür, dann bedenkt, dass es um persönliche, sensible Daten geht, die nur per strickte Anordnung des Benutzers freigegeben werden dürfen.
20.03.2014 22:13:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Limbi

Arctic
Ok alle Dateien in einen Ordner fällt wohl weg, da mit der Anzahl an Dateien auch der Dateizugriff langsamer wird.

Folglich gibt's wohl für jeden Benutzer einen Ordner mit seiner ID, innerhalb diesem Ordner werden weitere Ordner (je nach Wunsch erstellt). Gleichzeitig gibt's einen MySQL Eintrag mit dem (richtigen) Dateinamen und mit der Möglichkeit Keywords zur Datei einzutragen.

Dann ist prinzipiell nur noch die Frage, wie man die Dateien vor Fremdzugriff schützt. Also dass ein Benutzer, nachdem er sich ausgeloggt hat, keinen Zugriff mehr auf die Datei hat.
Habt Ihr da eine Idee? htaccess?
25.03.2014 22:31:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Meister Zopf

meister_zopf
Dateien "oberhalb" des Web-Roots ablegen. Sollte man eigentlich sowieso immer machen (siehe z.B. Symfony Framework: http://symfony.com/doc/current/quick_tour/the_architecture.html#understanding-the-directory-structure)

data/...
src/...
web/index.php <-- sog. Front Controller

web/ wäre hier das Web-Root.


Dateidownloads könnten dann so aussehen:

http://foo.com/index.php/download/1312/blabla.pdf <-- "index.php/" kann man auch per Rewrite verstecken.

In deinem Code guckst du dann erst, ob der User eingeloggt ist und auf die entsprechende Datei zugreifen darf. Falls ja, einfach die Datei durchreichen:

 
PHP:
<?php

$file 
= ...
$fp fopen($file'rb');

header("Content-Type: image/png"); // je nach Typ natürlich
header("Content-Length: " filesize($file));

fpassthru($fp);

02.04.2014 21:51:12  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Limbi

Arctic
Interessant, das klingt gut.
Wie ist das Handling mit grösseren Dateien? Die werden dann automatisch vom Browser runtergeladen? Oder sieht man auf dem Bildschirm einfach eine Binärpampe?

/ Generell wie sieht es bei einem solchen Framework mit Download aus? Sagen wir ich rufe ein 100MB Grosse Datei aus dem Keller, bleibt sie solange am Eingang, bis sie komplett runtergeladen wurde?
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Limbi am 08.04.2014 19:40]
08.04.2014 19:26:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: Eine Dateistruktur für persönliche, sensible Daten


mods.de - Forum » Webdesign & Coding » 

Hop to:  

| tech | impressum