Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: PHP / unzip / auf PWD prüfen

  1. #1
    Youngster
    Registriert seit
    05.02.2014
    Beiträge
    14
    Danke
    7
    Bekam 0 mal "Danke" in 0 Postings

    Standard PHP / unzip / auf PWD prüfen

    Huhu,

    kann ich irgendwie vorab prüfen, ob ein geziptes Archive passwortgeschützt ist oder muss ich versuchen es zu entzippen und mir den Rückgabewert anschauen?
    Ich würde gerne nicht geschützte Archive verbieten...

    Aktuell verwende ich:

    PHP-Code:
    exec("unzip -P $pwd $source -d $des"$ret_val); 
    das funktioniert aber scheinbar auch wenn $source nicht geschützt ist.

    VG
    Olz.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Olz (07.02.2014 um 12:02 Uhr)

  2. #2
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Wenn du den Passwort-Parameter wegnimmst sollte er dir nen Fehler ausspucken, wenn das Archiv geschützt ist. Aber damit kannst du dir böse viren auf deinen Server holen, das würd ich lassen.

    Aber vielleicht hilt dir das hier weiter: http://www.pkware.com/documents/casestudies/APPNOTE.TXT
    dann kannst du selbst mit sicherheit prüfen, ob die Datei verschlüsselt ist.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  3. Folgende User finden die Antwort von Tobse gut:

    Olz

  4. #3
    Youngster
    Themenstarter

    Registriert seit
    05.02.2014
    Beiträge
    14
    Danke
    7
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Danke für die Antwort.

    In die APPNOTE.TXT habe ich bisher nur mal kurz reingeschaut...

    Mein einzige Idee ist nach wie vor erst mal das Upload ohne PWD zu entzippen und dann, falls es funktioniert hat, alles wieder zu löschen und dann abbrechen. Wenn es nicht funktioniert würde ich dann mit PWD weitermachen.

    Vielleicht gehts ja aber auch einfacher. Falls mir da keiner einen weiteren Tipp zu geben kann, muss ich wohl nochmal deine Datei genauer studieren. Ich kann das unzip leider lokal bei mir nicht testen - deshalb ist es etwas umständlich für mich da was zu probieren.

    Gruß
    Olz.
    Geändert von Olz (07.02.2014 um 16:50 Uhr)

  5. #4
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Was das testen angeht kann ich dir etwas helfen:
    Zitat Zitat von unzip --help
    UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

    Usage: unzip [-Z] [-opts[modifiers]] file[.zip]
    [list] [-x xlist] [-d exdir]
    Default action is to extract files in list, except those in xlist, to exdir;
    file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).

    -p extract files to pipe, no messages -l list files (short format)
    -f freshen existing files, create none -t test compressed archive data
    -u update files, create if necessary -z display archive comment only
    -v list verbosely/show version info -T timestamp archive to latest
    -x exclude files that follow (in xlist) -d extract files into exdir
    modifiers:
    -n never overwrite existing files -q quiet mode (-qq => quieter)
    -o overwrite files WITHOUT prompting -a auto-convert any text files
    -j junk paths (do not make directories) -aa treat ALL files as text
    -U use escapes for all non-ASCII Unicode -UU ignore any Unicode fields
    -C match filenames case-insensitively -L make (some) names lowercase
    -X restore UID/GID info -V retain VMS version numbers
    -K keep setuid/setgid/tacky permissions -M pipe through "more" pager
    -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives
    -I CHARSET specify a character encoding for UNIX and other archives

    See "unzip -hh" or unzip.txt for more help. Examples:
    unzip data1 -x joe => extract all files except joe from zipfile data1.zip
    unzip -p foo | more => send contents of foo.zip via pipe into program more
    unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
    Das einzige, was dir der Befehl vllt hilft, ist: wenn du unzip -t datei.zip mit einem Verschüsselten Archiv machst wird nach dem Passwort gefragt.


    Es gibt aber auch eine ZIP-Extension für PHP, die sollte Passwörter auch erkennen können.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  6. #5
    Meister(in) Avatar von lukasn
    Registriert seit
    23.02.2008
    Ort
    Schweiz
    Alter
    27
    Beiträge
    491
    Danke
    2
    Bekam 12 mal "Danke" in 11 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    die ZipArchive extension erkennt leider keine Passwörter. Da es dir aber ja scheinbar darum geht, ungeschützte Archive zu verbieten könntest du doch die Extension verwenden, etwa so:

    PHP-Code:
    $zip = new ZipArchive;
    if ( 
    file_exists($source) )
    {
        if ( 
    $zip->open($source); )
        {
            
    // Code, wenn ungeschützt...
        
    }
        else
        {
            
    // Kann nicht geöffnet werden
            // Passwortgeschützt wird angenommen

            
    $output shell_exec("unzip -P $pwd $source -d $des");
        }
    }
    else
    {
        
    // Pfad falsch

    Das braucht natürlich noch etwas feinere Überprüfungen, aber sollte mal als Anstoss reichen.

  7. Folgende User finden die Antwort von lukasn gut:

    Olz

  8. #6
    Youngster
    Themenstarter

    Registriert seit
    05.02.2014
    Beiträge
    14
    Danke
    7
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Sieht vielversprechend aus, vielen dank.
    Werde noch mal posten sobald ichs ausprobieren konnte...

  9. #7
    Youngster
    Themenstarter

    Registriert seit
    05.02.2014
    Beiträge
    14
    Danke
    7
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Kann es sein, dass der if-Fall:

    PHP-Code:
    if ( $zip->open($source); ) 
    auch bei geschützten Verzeichnissen ausgeführt wird? Wurde mir zumindest eben so berichtet.
    Ich kann leider nach wie vor selbst schlecht testen.

    PHP-Code:
    $res $zip->open($source);
    if (
    $res === TRUE) { 
    wird auch nicht viel nützen, oder?

    edit: nützt auch nix.

    Kann es sein, dass der open-Befehl auch bei geschützten Verzeichnissen noch ausgeführt wird und nur das öffnen der Dateiinhalte im Verzeichnis dann verweigert wird?

    VG
    Olz.
    Geändert von Olz (10.02.2014 um 20:58 Uhr)

  10. #8
    Prinz(essin)
    Registriert seit
    26.03.2013
    Beiträge
    835
    Danke
    20
    Bekam 76 mal "Danke" in 75 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Zitat Zitat von Olz Beitrag anzeigen
    Kann es sein, dass der open-Befehl auch bei geschützten Verzeicnissen noch ausgeführt wird und nur das öffnene der Dateiinhalte im Verzeichnis dann verweigert wird?
    Die Zip-Bibliothek von PHP unterstützt keine Passwortfunktionen. Was genau passiert kann ich aber nicht sagen, da ich es nie angewandt habe.

  11. Folgende User finden die Antwort von explanator gut:

    Olz

  12. #9
    Youngster
    Themenstarter

    Registriert seit
    05.02.2014
    Beiträge
    14
    Danke
    7
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    sod. folgendes würde zwar funktionieren - gefällt mir aber (noch) nicht gut genug ums tatsächlich einzubauen (ist irgendwie mit try & error zusammengefummelt):

    PHP-Code:
      $no_pwd true;
      
    $zip zip_open($source);
      if (
    $zip) {
       while (
    $zip_entry zip_read($zip)) {
        if (
    zip_entry_open($zip$zip_entry"r")) {
         
    $buf zip_entry_read($zip_entryzip_entry_filesize($zip_entry));
         if(empty(
    $buf)) {
          
    $no_pwd false;
         } 
         
    zip_entry_close($zip_entry);
        }
       }
       
    zip_close($zip);
      }

      if (
    $no_pwd) {
       echo 
    "no PWD! <br />";
       echo 
    "<a href='analyse.php'>Reload this Page</a>";
       die();
      } else {
       
    // zip is PWD-protected
       
    echo "PWD! Test-DIE!";
       echo 
    "<a href='analyse.php'>Reload this Page</a>";
       die();
      } 
    Geändert von Olz (10.02.2014 um 21:55 Uhr)

  13. #10
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP / unzip / auf PWD prüfen

    Da liest du aber das gesammte archiv, es würde aber ein einziger Byte reichen:
    PHP-Code:
    $buf zip_entry_read($zip_entry1); 
    An sonsten ist das wohl das beste, was man hinbekommt. Nicht viel anders sähe das in höheren Programmiersprachen aus (nur dass die möglicherweise eine Funktion haben, die auf ein Passwort prüft und/oder Exceptions werfen, wenn ein Passwort gesetzt ist).
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  14. Folgende User finden die Antwort von Tobse gut:

    Olz

Ähnliche Themen

  1. Benutzereingabe prüfen?
    Von #matthias im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 08.10.2009, 14:53
  2. Anmeldeformular prüfen
    Von Tobse im Forum Script-Archiv
    Antworten: 2
    Letzter Beitrag: 16.05.2009, 01:54
  3. Dateigröße prüfen
    Von JSpring im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 11.10.2007, 21:05
  4. prüfen ob $x ein vielfaches von $y ist....
    Von Gsus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 30.09.2006, 17:19
  5. Upload und unzip in speziellen Ordner
    Von shorty im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 07.05.2005, 13:55

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •