Website aufrufen, ohne dass man sieht, welche?

21/09/2007 - 09:43 von Frank Lehmann | Report spam
Hallo NG,

ich habe eine Webanwendung und möchte, dass auf dem
Client ein Browserfenster aufgeht, in dem der Inhalt einer
bestimmten Website angezeigt wird.
Das kann sowohl ein PDF-Dokument
oder auch nur eine HTML-Seite oder irgendetwas anderes
"Herunterladbares" sein.
Der Anwender soll an die Website aber nur kommen, wenn
er in meiner Webanwendung ein Login durchlaufen hat.
Er darf also die URL, zu der ich ihn über Redirect oder window.open
umgeleitet habe, nicht sehen, da er im Wiederholungsfall
diese URL einfach direkt aufruft, ohne beim Login vorbeigekommen
zu sein.
Geht das überhaupt, dass er die URL nirgends sieht?
Bei Response.Redirect sieht man ja immer die URL,
zu der umgeleitet wurde, und window.open erlaubt zwar die
Einrichtung eines neuen Browserfensters ohne
URL-Eingabezeile, aber wenn man das z.B. in Firefox laufen làsst,
dann verschwindet (angeblich) in allen schon geöffneten Fenstern
ebenfalls die URL-Eingabezeile.
Anders gefragt - ist dieses Vorgehen überhaupt guter Stil?
Man begibt sich ja ein bisschen in die Richtung von Phishing,
wo in der URL-Eingabezeile eventuell DeutscheBank steht
und der Seiteninhalt auf einen GanovenServer führt, oder
versucht wird, die tatsàchliche URL vor dem Anwender aus
Betrugsgründen zu verbergen.

Im Moment habe ich die Sache so gelöst, dass der Webserver
den Seiteninhalt der Website, die der Client sehen soll, zwischenspeichert
und dann an den Client weitersendet. Das bedeutet aber zweimal
Herunterladen und ist folglich langsamer. Außerdem geht das im Moment
nur für das Herunterladen von PDF-Dokumenten. Bei beliebigem Seiten-
inhalt bekomme ich die Seite nicht aufgebaut, die aus der Zwischenspeicherung
generiert werden soll.

Kann jemand für das Problem des unsichtbaren Umschaltens auf eine
andere Website eine Lösung nennen, die nichts mit Phishing zu tun hat?

Dank an alle, die helfen wollen
Gruß
Frank Lehmann
 

Lesen sie die antworten

#1 Thomas Bandt
21/09/2007 - 10:03 | Warnen spam
Frank Lehmann schrieb:
ich habe eine Webanwendung und möchte, dass auf dem
Client ein Browserfenster aufgeht, in dem der Inhalt einer
bestimmten Website angezeigt wird.



Wo kommt der Inhalt her, bzw. wo liegt dieser?

Der Anwender soll an die Website aber nur kommen, wenn
er in meiner Webanwendung ein Login durchlaufen hat.
Er darf also die URL, zu der ich ihn über Redirect oder window.open
umgeleitet habe, nicht sehen, da er im Wiederholungsfall
diese URL einfach direkt aufruft, ohne beim Login vorbeigekommen
zu sein.



Die URL ist kein Problem. Du kannst auf mehreren Wegen
prüfen, ob der Zugriff auf die URL möglich ist, etwa
via Forms Authentication bei Direktzugriff auf Dateien
und/oder wenn alles via Response.BinaryWrite() an den
Client geht auch vorher via Session o.à. - je nachdem
wie dein Login gestrickt ist.

Geht das überhaupt, dass er die URL nirgends sieht?



Nein.

Bei Response.Redirect sieht man ja immer die URL,
zu der umgeleitet wurde, und window.open erlaubt zwar die
Einrichtung eines neuen Browserfensters ohne
URL-Eingabezeile, aber wenn man das z.B. in Firefox laufen làsst,
dann verschwindet (angeblich) in allen schon geöffneten Fenstern
ebenfalls die URL-Eingabezeile.



Rechtsklick, Eigenschaften - die URL ist immer da. Im IE
sogar zwangsweise in jedem Fenster sofern die Site nicht
in einer vertrauenswürdigen Zone steckt.

Anders gefragt - ist dieses Vorgehen überhaupt guter Stil?
Man begibt sich ja ein bisschen in die Richtung von Phishing,
wo in der URL-Eingabezeile eventuell DeutscheBank steht
und der Seiteninhalt auf einen GanovenServer führt, oder
versucht wird, die tatsàchliche URL vor dem Anwender aus
Betrugsgründen zu verbergen.



Richtig erkannt - deshalb ist es auch nicht möglich.

Im Moment habe ich die Sache so gelöst, dass der Webserver
den Seiteninhalt der Website, die der Client sehen soll, zwischenspeichert
und dann an den Client weitersendet. Das bedeutet aber zweimal
Herunterladen und ist folglich langsamer. Außerdem geht das im Moment
nur für das Herunterladen von PDF-Dokumenten. Bei beliebigem Seiten-
inhalt bekomme ich die Seite nicht aufgebaut, die aus der Zwischenspeicherung
generiert werden soll.



Warum nur für PDFs? Was ist nun der Inhalt, und wie holst du
den? Vorher per WebRequest?

Wenn die Sachen online sowieso frei verfügbar sind, frage ich
mich warum du das schützen willst.

Alternativ wàre schlicht eine Download.aspx möglich, bei der
du eine ID übergibst die den Download repàsentiert. Den Pfad
dazu hinterlegst du in einer Datenbank. Beim Aufruf prüfst du
ob der User angemeldet ist, wenn ja holst du den Pfad und leitest
via Response.Redirect direkt auf die Datei. Dann sieht der User
im Normalfall die Adresse der Datei auch nicht, weil sie sich
sofort öffnet. Ich weiß aber im Moment nicht genau wie das
Verhalten ist, wenn es via Browserplugin geöffnet wird.

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

Ähnliche fragen