perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




08.02.2012 / 22:29

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Gibt es eine Möglichkeit, nicht nur den Originalnamen der hochzuladenden Datei sondern auch den Originalverzeichnisnamen im cgi-Skript zu ermitteln?
Gruss Andreas

Datum: 21.06.2007-09:11

Beitragre: Dateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Bemerkung: Mit dem IE von Microsoft wird die Verzeichnisinformation übertragen, nicht aber bei der Verwendung von Firefox oder Mozilla/SeaMonkey

Datum: 21.06.2007-15:22

Beitragre: Dateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Der Grund warum manche Browser (Opera, Mozilla Firefox, etc.) nicht den vollstaendigen Pfad senden, ist eine Sicherheitsmasznahme, so moechte man vermeiden dass unnoetige Informationen (ueber den Aufbau der Verzeichnisstruktur) vom Clientsystem an die Auszenwelt kommen.
Wenn du mit dem IE eine Datei aus deinen 'Eigene Dateien'-Verzeichnis hochlaedst, dann ist der vollstaendige Pfad z.Bsp.: 'C:\Dokumente und Einstellungen\DeinBenutzername\Eigene Dateien\meine_datei.txt', schon kennt man deinen Benutzernamen.

Datum: 21.06.2007-15:42

Beitragre: Dateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Wenn der Client (der Browser) nicht den vollstaendigen Pfad sendet, kann man ihn auch nicht im CGI-Script auslesen.

Folgendes Script sendet eine HTTP-POST-Anfrage, die die Datei '/tmp/tempfile' hochlaedt und fuer das 'filename'-Attribut den vollstaendigen Pfad verwendet.


none@ruby:~$ vi http_post_fileupload.pl
#!/usr/bin/perl

use strict;
use warnings;

use LWP::UserAgent;

my $url = 'http://example.org/fileupload/';

my $ua = LWP::UserAgent->new;

my $resp = $ua->post($url, Content_Type => 'form-data',
Content => [
myfile => ["/tmp/tempfile",
"/tmp/tempfile"
]
]);

unless($resp->is_success) {
die $resp->status_line, "\n";
}

print $resp->content();


Wuerde in den anonymen Array fuer 'myfile' nur ein Element mit dem Pfad stehen, dann wuerde auch hier fuer das 'filename'-Attribut der Teil des Pfads bis auf den Dateinamen entfernt werden.

Es ist also Sache der Client-Software den vollstaendigen Pfad mit zu uebermitteln und nicht Aufgabe des CGI-Scripts.
Hier der entsprechende Abschnitt aus dem RFC 2388 - Returning Values from Forms: multipart/form-data


4.4 Other attributes

Forms may request file inputs from the user; the form software may
include the file name and other file attributes, as specified in [RFC
2184].

The original local file name may be supplied as well, either as a
"filename" parameter either of the "content-disposition: form-data"
header or, in the case of multiple files, in a "content-disposition:
file" header of the subpart. The sending application MAY supply a
file name; if the file name of the sender's operating system is not
in US-ASCII, the file name might be approximated, or encoded using
the method of RFC 2231.

This is a convenience for those cases where the files supplied by the
form might contain references to each other, e.g., a TeX file and its
.sty auxiliary style description.

Datum: 21.06.2007-15:31

Beitragre: Dateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Gibt es vielleicht eine Möglichkeit, mit javascript die Verzeichnisinformation
zum Server zu bringen.
Sorry, ich weiss das jetzt eigentlich kein Perl/CGI Problem mehr.
Vielleicht könnt ihr mir trotzdem helfen

Datum: 27.06.2007-07:36

Beitragre: Dateiupload : Dateinamen+Verzeichnisnamen
Seitenanfang
Hallo!

>>Gibt es vielleicht eine Möglichkeit, mit javascript die Verzeichnisinformation zum Server zu bringen.

Das wird wohl nicht möglich sein. Javascript wird in einer Sandbox streng isoliert vom Rest des Computers ausgeführt. Alles andere wäre ein erhebliches Sicherheitsrisiko, man könnte Problemlos Schadcode über eine Website auf den Client bringen.

Es ist nunmal Absicht, dass es keinen Weg gibt, Verzeichnisinformationen vom Rechner zu 'klauen', warum das so ist, hat dash ja schon erklärt.

Grüße, Skrilax

Datum: 27.06.2007-21:33

-






-
-