[SICHERHEIT] Überprüfen ob ZIP hochgeladen wurde
Tian
- php
0 Ingo Turski0 Tian
0
Der Martin
0 Tian
0 Simone
Hey,
gibt es eine zuverlässige Methode zum überprüfen, ob ueber eine Form eine Zip Datei hochgeladen wurde? Der Mime-Type ist ja manipulierbar.
Ich habe letztens auch mal flüchtig was drüber gehört, dass es bei ZIP Dateien durchaus einen exploid gibt, der eine harmlose Zip Datei recht gefährlich erscheinen lassen kann. Hat da jemand zufällig Infos drüber?
Bin für jegliche Info dankbar.
Lieben Gruß aus Bremen
vom Tian
Hi,
gibt es eine zuverlässige Methode zum überprüfen, ob ueber eine Form eine Zip Datei hochgeladen wurde?
Ob es zuverlässig ist, kann ich Dir nicht sagen, aber ZIP-Dateien beginnen AFAIK immer mit der Zeichenfolge 50 4b 03 04 (das 'PK' steht wohl für den Urvater PKZIP).
freundliche Grüße
Ingo
Ob es zuverlässig ist, kann ich Dir nicht sagen, aber ZIP-Dateien beginnen AFAIK immer mit der Zeichenfolge 50 4b 03 04 (das 'PK' steht wohl für den Urvater PKZIP).
Ah, danke für den Hinweis. Dürfte natuerlich auch manipulierbar sein. Aber letztendlich kann man ja mehrere Prüfungsmethoden hintereinandersetzen und es somit potenziellen Fieslingen zumindest mal schwer machen. ;)
Lieben Gruß
Hallo,
gibt es eine zuverlässige Methode zum überprüfen, ob ueber eine Form eine Zip Datei hochgeladen wurde?
nein, wenn du auf "zuverlässig" Wert legst, dann nicht. Du kannst den Dateinamen auf die Endung ".zip" untersuchen, du kannst auch den Hinweis von Ingo aufgreifen und den Dateiheader kontrollieren. Du könntest natürlich auch über die zip-Funktionen in PHP versuchen, die Datei zu öffnen und gucken, ob das ohne Fehler geht.
Aber warum musst du das so genau kontrollieren? Was hast du mit der zip-Datei vor?
Ich habe letztens auch mal flüchtig was drüber gehört, dass es bei ZIP Dateien durchaus einen exploid gibt, der eine harmlose Zip Datei recht gefährlich erscheinen lassen kann. Hat da jemand zufällig Infos drüber?
Hab ich nicht. Aber solange du die Datei nur auf den Server hochlädst und in irgendeinem Verzeichnis speicherst, kann definitiv nichts passieren. Erst wenn du auf dem Server dieses zip-Archiv öffnen oder entpacken wolltest, wäre eine derartige Gefahr überhaupt denkbar.
So long,
Martin
Hallo,
Du könntest natürlich auch über die zip-Funktionen in PHP versuchen, die Datei zu öffnen und gucken, ob das ohne Fehler geht.
Aber warum musst du das so genau kontrollieren? Was hast du mit der zip-Datei vor?
...solange du die Datei nur auf den Server hochlädst und in irgendeinem Verzeichnis speicherst, kann definitiv nichts passieren. Erst wenn du auf dem Server dieses zip-Archiv öffnen oder entpacken wolltest, wäre eine derartige Gefahr überhaupt denkbar.
Das ist halt leider das Problem. Ich möchte die Datei dort auf jedem Fall entpacken. Daher bin ich moementan am überlegen, ob man nicht irgendwas mit der ZIP anstellen könnte, was sie schon beim reinen Zugriff (auch ueber die ZIP Funktionen) gefährlich lassen werden könnte.
Wenn sich da keine Gefahren ergeben, dann wäre das natürlich super.
Lieben Gruß
HI,
ich mach das so
$cache_file_name = *.zip
if ($f_cache and is_readable($cache_file_name))
{
$test =gzip -t $cache\_file\_name 2> /dev/null; echo $?;
}
if ($test == 0 and file_exists($cache_file_name))
{
}