Schrift
[thread]740[/thread]

system() nach Dateiupload



<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-05-29 16:08
#7786 #7786
Hallo!

Ich nutze folgenden Code um eine Datei im Browser hochzuladen.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if ($filenotgood ne "yes")
{
$fileName = param('FILE1') || "";
my ($filehandle) = CGI::upload('FILE1');
my $serverFile = $basedir . "/" .
  (split(/[\\\/]/, param('FILE1')))[-1];
my $buffer;
open (FILE,">$serverFile") or die $!;
binmode $filehandle;
while (my $bytesread=read($filehandle,$buffer,1024))
{
 if (print FILE $buffer)
 {
  $success = $hinweis2;
 }
 else {$success = $hinweis3;exit;} #Meldung, weil Fehler aufgetreten
}
close (FILE);
}
}


Wenn ich danach einen Befehl, wie diesen benutze, klappt es nicht.

Code: (dl )
$funktion = system("cp /vonVerzeichnisA/test.pl /nachVerzeichnisB");


Der Unix Befehl sollte nicht das Problem sein. Dieser klappt zumindestens direkt auf der Konsole.
Ich habe eher den Eindruck, das Script bricht nach close(FILE); ab.
Hmh, weiß mir keinen Rat. Ihr?

LG Britta\n\n

<!--EDIT|esskar|1148904830-->
bloonix
 2006-05-29 16:17
#7787 #7787
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo,

zum kopieren von Dateien ist das Modul CPAN:File::Copy sehr gut.

*snipp*

Gruß,
opi\n\n

<!--EDIT|opi|1148940461-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
GwenDragon
 2006-05-29 16:20
#7788 #7788
User since
2005-01-17
14554 Artikel
Admin1
[Homepage]
user image
1) Du solltest den Parameter FILE1 prüfen.
Sicherheitsrisiko bei Nicht- Überprüfung!
Sonst könnte es passieren, dass bei ../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd oder ähnliche Dateien überschreibst.

2) Dieser System-Befehl ist sicherer:
Code: (dl )
$funktion = system("cp", "/vonVerzeichnisA/test.pl", "/nachVerzeichnisB/");
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

ptk
 2006-05-29 23:22
#7789 #7789
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=GwenDragon,29.05.2006, 14:20]1) Du solltest den Parameter FILE1 prüfen.
Sicherheitsrisiko bei Nicht- Überprüfung!
Sonst könnte es passieren, dass bei ../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd oder ähnliche Dateien überschreibst.[/quote]
Bei speziell diesem Problem kann no_upwards aus File::Spec helfen.
<< >> 4 Einträge, 1 Seite



View all threads created 2006-05-29 16:08.