Deaktivieren Sie den direkten Zugriff auf Bilder

8

Ich mache ein kleines Familienfotoalbum mit der Absicht, es vielleicht später anderen Leuten zu öffnen, um Bilder später zu speichern.

Ich lade die Bilder in ~ \ images hoch, ändere sie dann dreimal (Normalansicht ... Miniaturansicht und eine kleine Version) und verschiebe sie nach ~ \ images \ thumbs, ~ \ images \ normal, ~ \ images \ klein und dann das Original nach ~ \ images \ original verschieben.

Wenn ein Benutzer einen Dateinamen kennt, kann er direkt zu Ссылка gelangen.

Ich würde es vorziehen, dass sie ihnen nicht zur Verfügung stehen.

Also, gibt es eine Möglichkeit, das ImageUrl des asp: Image-Steuerelements zu ändern, um eher von einem nicht zugänglichen Ordner zu lesen? Und wäre das ein Performance-Hit? Ich denke an etwas wie (nicht sicher, ob es möglich ist) das Bild in s Steam lesen, und irgendwie die ImageUrl oder was auch immer, aus dem Stream zu lesen?

Ich hoffe, Sie können helfen.

    
Craig 02.01.2012, 23:54
quelle

2 Antworten

8

Die Antwort ist ja. Sie können ein spezielles Format von img src verwenden, das das Bild direkt in die Seite einbindet.

Anstelle der URL würden Sie das folgende Format verwenden:

%Vor%

wo Daten den Mime-Typ Ihres Bildes und die ... nach base64 angeben, ist der Base64-kodierte Inhalt des Bildes.

Dieses Verhalten wird von diesem RFC definiert.

Hier ist ein Beispiel:

Im HTML:

%Vor%

Im Code-Behind:

%Vor%     
competent_tech 03.01.2012, 00:08
quelle
0

Darf ich vorschlagen, etwas wie:

zu betrachten
  1. Speichern Sie Bilder in einem Ordner wie "siteroot / images / userid /".
  2. Nach erfolgreicher Anmeldung wird eine Sitzungsvariable festgelegt, damit andere Seiten wissen, dass der aktuelle Benutzer angemeldet ist. Session["user"] = youruser; Jedes Objekt, das Sie in Ihrer Sitzungsvariablen speichern, enthält eine gültige youruser.userID, die aus einer Datenbank abgerufen wird / li>
  3. Fügen Sie in Ihrer Datei "Global.asax" im Stamm Ihrer Site Folgendes hinzu:

(ungetesteter Code)

%Vor%

Dies sollte den Zugriff für alle Personen außer dem korrekten Benutzer des jeweiligen "images" -Ordners effektiv verhindern, selbst wenn sie den direkten Pfad der Bilddateien herausfinden.

Wenn jemand irgendwelche Möglichkeiten hat, diese Methode zu verbessern, können Sie gerne kommentieren, da ich diese Idee bald in einer Site implementieren werde und zweite Meinungen sind immer willkommen.

    
ToddBFisher 03.01.2012 01:46
quelle

Tags und Links