Verhindern der Anzeige eines Downloadpfades

16/02/2008 - 18:40 von Uwe Ricken | Report spam
Hallo werte Gemeinde der ASP.NET-Jünger,

mein erstes ASP-Projekt ist fertig und wàchst nun stetig.
Nun habe ich eine Anforderung, bei der ich mit meinem Latein
am Ende bin.

In meinem Portal habe ich u. a. eine Liste mit verfügbaren Downloads
für meine Mitarbeiter zur Verfügung gestellt. Damit die Mitarbeiter
aber nicht direkt den Link zum Download eingeben, habe ich den
Link bereits in der Datenbank verschlüsselt.

Diese "Sonderzeichen" kommen nun beim ISS an und der wiederum
verwendet eine Stored Procedure auf dem SQL-Server, um die
verschlüsselten Informationen wieder in Klartext zu bekommen.

Also etwa so:
Inhalt in DB: http://www.dasdfadsf.de/dafdsfas/ich.zip
IIS erhàlt: %6&38da34ersd (usw.)
Die Downloadseite verwendet eine Stored Procedure, die
aus %6&38da34ersd (usw.) wieder den korrekten Link macht.

Wenn der Link wieder decrypted wurde, gehe ich mit einem
Response.Redirect(EntschlüsselterLink) her und lade die Datei
herunter.

LEIDER wird der entschlüsselte Link aber in der Statuszeile angezeigt ;-(
Gibt es eine Möglichkeit, den Inhalt der Statusleiste mittels ASP.NET
so zu manipulieren, dass da ein beliebiger Text angezeigt wird?

Vielen Dank für Eure Hilfe...

Gruß, Uwe Ricken
MCP for SQL Server 2000 Database Implementation

db-Berater GmbH - 64390 Erzhausen
http://www.db-berater.de
http://www.memberadmin.de
http://www.conferenceadmin.de
____________________________________________________
dbdev: http://www.dbdev.org
FAQ: http://www.donkarl.com/AccessFAQ.htm
 

Lesen sie die antworten

#1 Thomas Bandt
16/02/2008 - 18:58 | Warnen spam
Hi,

Uwe Ricken schrieb:
In meinem Portal habe ich u. a. eine Liste mit verfügbaren Downloads
für meine Mitarbeiter zur Verfügung gestellt. Damit die Mitarbeiter
aber nicht direkt den Link zum Download eingeben, habe ich den
Link bereits in der Datenbank verschlüsselt.

Diese "Sonderzeichen" kommen nun beim ISS an und der wiederum
verwendet eine Stored Procedure auf dem SQL-Server, um die
verschlüsselten Informationen wieder in Klartext zu bekommen.

Also etwa so:
Inhalt in DB: http://www.dasdfadsf.de/dafdsfas/ich.zip
IIS erhàlt: %6&38da34ersd (usw.)
Die Downloadseite verwendet eine Stored Procedure, die
aus %6&38da34ersd (usw.) wieder den korrekten Link macht.

Wenn der Link wieder decrypted wurde, gehe ich mit einem
Response.Redirect(EntschlüsselterLink) her und lade die Datei
herunter.

LEIDER wird der entschlüsselte Link aber in der Statuszeile angezeigt ;-(
Gibt es eine Möglichkeit, den Inhalt der Statusleiste mittels ASP.NET
so zu manipulieren, dass da ein beliebiger Text angezeigt wird?



Respekt dafür dass du soweit gekommen bist, ohne überhaupt
Server und Client auseinanderhalten zu können! ;-)

Nein, es gibt mit ASP.NET (=SERVER) keine Möglichkeit den Link
zu verfàlschen.

Was du da "verschlüsselst", wieder entschlüsselst usw. ist
mir auch nicht wirklich klar.

Machs doch einfach so:

Speichere den *lokalen*, physischen Pfad zur Datei in der
Datenbank, versehe den Datensatz mit einer ID, und rufe
dann einen Download-Handler auf:

/Download.ashx?ID=XYZ

Anhand der ID holst du dir den Pfad zur Datei, liest diese
ein und streamst sie zum Client.

So kannst du vorab ggf. Zugriffsberechtigungen überprüfen
und den Download verweigern, und keiner sieht den eigentlichen
Pfad zur Datei - die kann ja auch außerhalb des Webroots liegen,
weil sie gar nicht vom IIS direkt abgerufen wird.

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenbörse
http://blog.thomasbandt.de - Thomas goes .NET

Ähnliche fragen