Einbinden eines file-Protokolls

Einbinden eines file-Protokolls

am 20.11.2006 14:01:50 von Karsten Busenbender

Hallo.

In einem Skript moechte ich einen Link angeben, der ausserhalb des
htdocs-Verzeichnisses liegt. Der MS IE scheint dies als einziger Browser
zuzulassen. Da der MS IE das kann, vermute ich mal, dass es sich hier um
eine Art Sicherheitsluecke handelt, in jedem Fall aber nicht um etwas,
das der Apache zu verhindern versucht.

Gibt es mittels PHP eine Moeglichkeit, die URL so zu verschleiern, dass
das auch mit anderen Browsern funktioniert? rawurlencode brachte
beispielsweise keinen Erfolg.

Folgenden Hinweis kann ich noch geben:
Eine Eingabe in die URL-Zeile des Browsers funktioniert:
\\server\verzeichnis1\verzeichnis2\datei1.abc
//server/verzeichnis1/verzeichnis2/datei1.abc funktioniert nicht, trotz
Linux-Server.
file://///server/verzeichnis1/verzeichnis2/datei1.abc ist das,
was Netscape aus der oberen Zeile generiert.

Als Link in einer HTML-Seite geht das nicht mehr:


Kennt jemand das Problem und weiss Abhilfe?

Gruss,
Karsten

Re: Einbinden eines file-Protokolls

am 20.11.2006 14:26:23 von Sebastian Wessel

Karsten Busenbender schrieb:
> Hallo.
>
> In einem Skript moechte ich einen Link angeben, der ausserhalb des
> htdocs-Verzeichnisses liegt.

Das ist Server.

> Der MS IE scheint dies als einziger Browser
> zuzulassen.

Das ist der Client.

> Da der MS IE das kann, vermute ich mal, dass es sich hier um
> eine Art Sicherheitsluecke handelt, in jedem Fall aber nicht um etwas,
> das der Apache zu verhindern versucht.

Da gibt es Mittel und Wege in der Apache-Config.
Hier OT.

> Gibt es mittels PHP eine Moeglichkeit, die URL so zu verschleiern, dass
> das auch mit anderen Browsern funktioniert? rawurlencode brachte
> beispielsweise keinen Erfolg.

Soll es jetzt funktionieren oder nicht funktionieren?

> Folgenden Hinweis kann ich noch geben:
> Eine Eingabe in die URL-Zeile des Browsers funktioniert:
> \\server\verzeichnis1\verzeichnis2\datei1.abc

Damit greifst du auf ein Netzlaufwerk zu im Internet Explorer / Explorer
/ Arbeitsplatz - weil das ja irgendwie eh alles miteinander
zusammenhängt und sowieso mehr oder weniger eins ist.
Thema "Klickibunti gegen Sicherheit"

> //server/verzeichnis1/verzeichnis2/datei1.abc funktioniert nicht, trotz
> Linux-Server.

Klar, Windoof kommt mit den Slashes nicht klar an dieser Stelle.
btw: Du bist dmit nicht auf dem Linux-Server ;)

> file://///server/verzeichnis1/verzeichnis2/datei1.abc ist das,
> was Netscape aus der oberen Zeile generiert.
>
> Als Link in einer HTML-Seite geht das nicht mehr:
>

>
> Kennt jemand das Problem und weiss Abhilfe?

http://www.kernel.org/
http://www.apple.de/
http://www.suse.de/
http://de.debian.org/
http://www.mandriva.de/
http://www.fedora.de/
....


MfG
Sebastian Wessel

--
Informatiker haben Humor, allerdings laesst sich der nur schwer im
Quelltext ausdruecken. Ausnahme Microsoft: Dort arbeiten die
Kabarettisten der Informatik, die sogar lustigen Quelltext schreiben
koennen. [Oliver Schad in dclpm]

Re: Einbinden eines file-Protokolls

am 20.11.2006 14:30:40 von dev-null-use-reply-adress

Karsten Busenbender schrieb:

> In einem Skript moechte ich einen Link angeben, der ausserhalb des
> htdocs-Verzeichnisses liegt. Der MS IE scheint dies als einziger Browser
> zuzulassen. Da der MS IE das kann, vermute ich mal, dass es sich hier um
> eine Art Sicherheitsluecke handelt, in jedem Fall aber nicht um etwas,
> das der Apache zu verhindern versucht.

Du bringst hier Server und Client durcheinander. Und auch ein IE kann
nichts daran ändern, was der Webserver vorgibt bzw. erlaubt.

> Gibt es mittels PHP eine Moeglichkeit, die URL so zu verschleiern, dass
> das auch mit anderen Browsern funktioniert? rawurlencode brachte
> beispielsweise keinen Erfolg.

Vielleicht erklärst Du erstmal, was genau Du überhaupt erreichen willst.
Willst Du Dateien zum Download anbieten, die nicht im Document Root liegen?

13.3. Wie realisiere ich einen Dateidownload mit PHP?
http://www.php-faq.de/q/q-datei-download.html


> Folgenden Hinweis kann ich noch geben:
> Eine Eingabe in die URL-Zeile des Browsers funktioniert:
> \\server\verzeichnis1\verzeichnis2\datei1.abc
> //server/verzeichnis1/verzeichnis2/datei1.abc funktioniert nicht, trotz
> Linux-Server.
> file://///server/verzeichnis1/verzeichnis2/datei1.abc ist das,
> was Netscape aus der oberen Zeile generiert.

Das würde ein Browser, wenn überhaupt, als lokale Pfade interpretieren,
also auf der Festplatte des Clients suchen. Das willst Du nicht, oder?
Nochmal zurück zu meiner Frage oben ...


Gruß
JPM

Re: Einbinden eines file-Protokolls

am 20.11.2006 14:33:20 von dev-null-use-reply-adress

Jens Peter Moeller schrieb:
> Karsten Busenbender schrieb:

>> Eine Eingabe in die URL-Zeile des Browsers funktioniert:
>> \\server\verzeichnis1\verzeichnis2\datei1.abc
>> //server/verzeichnis1/verzeichnis2/datei1.abc funktioniert nicht, trotz
>> Linux-Server.
>> file://///server/verzeichnis1/verzeichnis2/datei1.abc ist das,
>> was Netscape aus der oberen Zeile generiert.
>
> Das würde ein Browser, wenn überhaupt, als lokale Pfade interpretieren,
> also auf der Festplatte des Clients suchen.

Bzw. im lokalen Netz beim Client.

Gruß
JPM

Re: Einbinden eines file-Protokolls

am 20.11.2006 14:46:23 von Karsten Busenbender

Jens Peter Moeller schrieb:

> Jens Peter Moeller schrieb:
>>Karsten Busenbender schrieb:
>>>Eine Eingabe in die URL-Zeile des Browsers funktioniert:
>>>\\server\verzeichnis1\verzeichnis2\datei1.abc
>>>//server/verzeichnis1/verzeichnis2/datei1.abc funktioniert nicht, trot=
z=20
>>>Linux-Server.
>>>file://///server/verzeichnis1/verzeichnis2/datei1.abc ist das,
>>>was Netscape aus der oberen Zeile generiert.
>>Das würde ein Browser, wenn überhaupt, als lokale Pfade interpretie=
ren,
>>also auf der Festplatte des Clients suchen.
> Bzw. im lokalen Netz beim Client.
Ok, das war schon mal ein guter Hinweis, das file: nur lokal=20
funktioniert. Was ich moechte:

Einen Download einer Datei, die auf einem Server liegt, allerdings nicht =

im Document-Root des Webservers. Unter Linux koennte ich mit smb:=20
arbeiten, mit Windoof geht das ja alles nicht. Was also muss ich tun, um =

eine beliebige Datei auf einem beliebigen Server in einem beliebigen=20
(natuerlich freigegebenen ergo fuer alle lesbaren) Verzeichnis zum=20
Download anzubieten?

Nun ist es aber so, dass client-seitig der Pfad zur Datei fuer alle im=20
Netzwerk gleich ist, theoretisch koennte ich also lokal arbeiten, klappt =

bloss leider nicht.

Ich habe schon einige Versionen ausprobiert und hatte gehofft, ueber=20
eine Maskierung von Slashes oder Backslashes weiterzukommen.

Gruss,
Karsten

Re: Einbinden eines file-Protokolls

am 20.11.2006 14:53:25 von dev-null-use-reply-adress

Karsten Busenbender schrieb:

> Ok, das war schon mal ein guter Hinweis, das file: nur lokal
> funktioniert. Was ich moechte:
>
> Einen Download einer Datei, die auf einem Server liegt, allerdings nicht
> im Document-Root des Webservers. Unter Linux koennte ich mit smb:
> arbeiten, mit Windoof geht das ja alles nicht.

Und wäre auch bescheuert, IMHO.

> Was also muss ich tun, um
> eine beliebige Datei auf einem beliebigen Server in einem beliebigen
> (natuerlich freigegebenen ergo fuer alle lesbaren) Verzeichnis zum
> Download anzubieten?

Aha, es geht also um eine Intranet-Anwendung? Aber egal, es ist garnicht
notwendig, ein für alle freigegebenes Verzeichnis zu verwenden. Nur
der Webserver bzw. PHP muß darauf zugreifen können.

Die Lösung nannte ich Dir bereits, in Form eines FAQ-Links.


Gruß
JPM

Re: Einbinden eines file-Protokolls

am 20.11.2006 15:12:56 von Karsten Busenbender

Jens Peter Moeller schrieb:
> Die Lösung nannte ich Dir bereits, in Form eines FAQ-Links.
Ja, danke, das habe ich wohl uebersehen in der FAQ. Vielen Dank.
Gruss,
Karsten

Re: Einbinden eines file-Protokolls

am 20.11.2006 15:16:46 von Martin Lemke

Karsten Busenbender schrieb:

> Was also muss ich tun, um
> eine beliebige Datei auf einem beliebigen Server in einem beliebigen
> (natuerlich freigegebenen ergo fuer alle lesbaren) Verzeichnis zum
> Download anzubieten?

Einen korrekten URL anbieten, aber was hat das mit php zu tun?

Martin

Re: Einbinden eines file-Protokolls

am 20.11.2006 16:21:49 von Oliver Block

Jens Peter Moeller wrote:
> Aha, es geht also um eine Intranet-Anwendung? Aber egal, es ist garnicht
> notwendig, ein für alle freigegebenes Verzeichnis zu verwenden. Nur
> der Webserver bzw. PHP muß darauf zugreifen können.

Bitte was?

Gruß,

Oliver

--
Leben ist mehr als ...

Re: Einbinden eines file-Protokolls

am 20.11.2006 16:44:13 von dev-null-use-reply-adress

Oliver Block schrieb:
> Jens Peter Moeller wrote:
>> Aha, es geht also um eine Intranet-Anwendung? Aber egal, es ist garnicht
>> notwendig, ein für alle freigegebenes Verzeichnis zu verwenden. Nur
>> der Webserver bzw. PHP muß darauf zugreifen können.
>
> Bitte was?

Du zitierst zu wenig. Der Zusammenhang ist jetzt völlig entstellt.

Der OP wollte eine Datei zum Download anbieten, welche scheinbar
in einem lokalen Netz auf einem freigegebenen Verzeichnis liegt,
aber für den Server nicht im Document Root der entspr. Website.
Das wollte er über einen direkten Link, in der Art \\server\pfad\datei
machen. Ich riet ihm davon ab und empfahl einen Download per Script.
Dafür muß eben kein Client Zugriff auf die Datei haben. Mehr wollte
ich mit diesen Drei Sätzen nicht sagen.


Gruß
JPM

Re: Einbinden eines file-Protokolls

am 20.11.2006 16:59:42 von Oliver Block

Jens Peter Moeller wrote:

> Der OP wollte eine Datei zum Download anbieten, welche scheinbar
> in einem lokalen Netz auf einem freigegebenen Verzeichnis liegt,
> aber für den Server nicht im Document Root der entspr. Website.
> Das wollte er über einen direkten Link, in der Art \\server\pfad\datei
> machen.

Soweit klar.

> Ich riet ihm davon ab und empfahl einen Download per Script.
> Dafür muß eben kein Client Zugriff auf die Datei haben. Mehr wollte
> ich mit diesen Drei Sätzen nicht sagen.

Da bedeutet aber auch eine Umgehung der Dateizugriffsrechte. Es gibt doch
sicher auch einen Weg über eine URI um das Problem zu lösen, oder nicht?

Gruß,

Oliver

--
Leben ist mehr als ...

Re: Einbinden eines file-Protokolls

am 20.11.2006 17:23:20 von Ulf Kadner

Oliver Block schrieb:

>> Ich riet ihm davon ab und empfahl einen Download per Script.
>> Dafür muß eben kein Client Zugriff auf die Datei haben. Mehr wollte
>> ich mit diesen Drei Sätzen nicht sagen.
>
> Da bedeutet aber auch eine Umgehung der Dateizugriffsrechte.

Nanu? Du hast noch nie mit Dateien ausserhalb Document-Root gearbeitet?
Das hat nix mit irgend einer Umgehung zu tun. Es ist was es ist.

MfG, Ulf

Re: Einbinden eines file-Protokolls

am 21.11.2006 02:30:39 von Oliver Block

Ulf Kadner wrote:

> Oliver Block schrieb:
>
>> Da bedeutet aber auch eine Umgehung der Dateizugriffsrechte.
>
> Nanu? Du hast noch nie mit Dateien ausserhalb Document-Root gearbeitet?

Nur wenn Apache so konfiguriert wurde und i.d.R. nur lokal.:)

> Das hat nix mit irgend einer Umgehung zu tun. Es ist was es ist.

Wenn der Aufrufer des Links Rechte an einer Datei hat, dann sollte er auch
per Klick darauf zugreifen können, oder nicht?

Gruß,

Oliver

--
Leben ist mehr als ...

Re: Einbinden eines file-Protokolls

am 21.11.2006 04:38:19 von Markus Malkusch

Jens Peter Moeller:

> Karsten Busenbender schrieb:
>
>> Unter Linux koennte ich mit smb: arbeiten, mit Windoof geht das ja alles
>> nicht.
>
> Und wäre auch bescheuert, IMHO.

[..]

> Die Lösung nannte ich Dir bereits, in Form eines FAQ-Links.

Hmm, ich habe hier ein ähnliches Problem (Webinterface zu locate für unseren
Dateiserver) und denke genau anders'rum. Bescheuert (weil unkomfortabel und
teuer) wäre ein Download via HTTP. Oder habe ich Dich jetzt falsch
verstanden?
--
Mit PHP Kontonummern auf Gültigkeit prüfen:

Re: Einbinden eines file-Protokolls

am 22.11.2006 18:12:02 von Matthias Esken

On Tue, 21 Nov 2006 02:30:39 +0100, Oliver Block wrote:

> Wenn der Aufrufer des Links Rechte an einer Datei hat, dann sollte er auch
> per Klick darauf zugreifen können, oder nicht?

Woher soll der Webserver wissen, welcher User hinter der Anfrage des
Clients steckt?