Wenn Sie nur moderate Sicherheit benötigen, wäre mein Ansatz die folgende sein:
1) Wenn der Benutzer die Datei-Uploads , erzeugen Sie einen schwer zu erratenden Pfad dafür. Zum Beispiel können Sie einen Ordner mit einem zufällig generierten Namen für jede hochgeladene Datei in Ihrem/statischen Ordner erstellen. Sie können dies tun, ziemlich einfach diesen Beispielcode verwenden:
file_path = "/static/" + os.urandom(32).encode('hex') + "/" + file_name
Auf diese Weise wird es sehr schwer sein, zu erraten, wo die Dateien anderer Benutzer gespeichert sind.
2) Verknüpfen Sie in der Datenbank den Besitzer mit der Datei. Ein Beispiel Schema kann sein:
uploads(id, user_id, file_path)
3) eine Eigenschaft für Ihre FileFields im Modell, um den Zugriff auf die Datei auf diese Weise zu beschränken:
class YourModel(models.Model)
_secret_file = models.FileField()
def get_secret_file(self):
# check in db if the user owns the file
if True:
return self._secret_file
elif:
return None # or something meaningful depanding on your app
secret_file = property(get_secret_file)
ich Ihnen vorschlagen zu folgen [Wie eine Datei privat zu machen, indem Sie die URL zu sichern, dass nur authentifizierte Benutzer sehen können] (http: //stackoverflow.com/questions/28007770/), aber Sie müssen Ihre eigene Methode implementieren, um anderen Benutzern den Zugriff zu verwehren ...! –