Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Nur bestimmte Ordner anzeigen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Nur bestimmte Ordner anzeigen

    Hallo,

    das hier ist ein Auschnitt aus jqueryFileTree, der alle Ordner ausliest.
    PHP-Code:
    // All dirs
    foreach( $files as $file ) {
    if( 
    file_exists($root $_POST['dir'] . $file)
    && !
    in_array($file$config['unallowed_dirs'])
    && 
    $file != '.' && $file != '..'
    && is_dir($root $_POST['dir'] . $file) ) {
    echo 
    "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" 
    htmlentities($_POST['dir'] . $file) . "/\">" 
    htmlentities($file) . "</a></li>";
    }

    Das Script enthält die Möglichkeit, unerlaubte Ordner zu blocken.
    PHP-Code:
    $config['unallowed_dirs'
    Ich möchte nun das Script so umschreiben, dass nur zwei bestimmte Ordner (z.B. "ordner1" und "ordner2") ausgegeben werden. Sonst keine. Irgendwie kriege ich das nicht richtig hin.

  • #2
    Rücke deinen Code doch bitte zuerst ein, so kann das doch kein Normalsterblicher lesen.
    Wenn du das getan hast, würde ich an deiner Stelle unallowed_dirs zu allowed_dirs ändern und dann alle verweigern, die nicht darin aufgeführt sind. Ist eh sicherer. Im Zweifelsfalle immer mit Whitelists arbeiten.
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      PHP-Code:
              foreach( $files as $file ) {
                  if( 
      file_exists($root $_POST['dir'] . $file)
                      && !
      in_array($file$config['unallowed_dirs'])
                      && 
      $file != '.' && $file != '..' 
                      
      && is_dir($root $_POST['dir'] . $file) ) {
                  echo 
      "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" htmlentities($_POST['dir'] . $file) . "/\">" htmlentities($file) . "</a></li>";
                  }
              } 
      So besser?

      Kommentar


      • #4
        Jap und jetzt machst du als $config['unallowed_dirs'] einfach $config['allowed_dirs'] und lässt das Ausrufezeichen von in_array() weg und schon hast du eine Whitelist gebastelt, die viel zuverlässiger funktioniert als eine Blacklist. Stell dir vor, was sonst passierte, wenn jemand /../../../ usw. angäbe und du leider nicht daran gedacht hast, alle Verzeichnisse, die es auf deinem System gibt, in die Blacklist aufzunehmen.
        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

        Kommentar


        • #5
          Stimmt, so gings!
          PHP-Code:
          $config['allowed_dirs']= array('ordner1''ordner2'); 
          Perfekt, es funktioniert.
          Vielen Dank, Manko10!

          Kommentar


          • #6
            Dann noch fix den Danke!
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar

            Lädt...
            X