nur bestimmtes verzeichnis zulassen

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

  • nur bestimmtes verzeichnis zulassen

    hey
    ich brauch mal einen kleinen denkanstoss

    also ich programmier an einer kleinen verwaltungssoftware für bilder und man kann da ordner anlegen (reelle im system) und um einfach per weboberfläche dies zu tun, wollt ich da mit einer kleinen funktion:

    PHP-Code:
    function showdirs($path,$dir '/') {
      
    $dh opendir($path.$dir);
        
      while ((
    $file readdir($dh)) !== false) {
        if(
    $file == '.' || $file == '..') continue;
        if(
    is_dir($path.$dir.$file)) {
          echo 
    '<a href="'.$_SERVER['PHP_SELF'].'?dir='.$dir.''.$file.'/">';
          echo 
    $file.'</a><br />';            
        }
      }    

    also die user sind alle unter zb
    /var/www/user1
    /var/www/user2 etc
    und das tool unter /var/www/admin

    user1 und user2 haben natürlich nur rechte für ihre verzeichnisse, admin für alle.

    nun sollen über die funktion die verzeichnisse angezeigt werden:
    PHP-Code:
    showdirs('/var/www/'.$aktuellerUser,$_GET['dir']); 
    Nur wird es problematisch wenn der user die url so ändert, dass zb drin steht "../user2/" oder so..

    sprich er könnte in ein anderes verzeichnis und da sachen auslesen.

    Habt ihr eine brauchbare Idee, wie ich das umgehen kann?

    MfG

  • #2
    realpath()

    Kommentar


    • #3
      ein ../ ist doch schnell abgefragt.

      Kommentar


      • #4
        realpath() scheint wohl nicht das richtige zu sein, da es mir daraus einen vollständigen pfad macht und dieser ja auch in dem anderen dir leigen kann..
        man könnte ihn aber vergleichen, da ich ja weiß, die ersten x zeichen müssen genau /var/www/user1 zb sein.. wäre eine idee..

        @ tobiaz jo sicher, wollt mich nur umhören ob es vielleicht etwas besseres gibt

        Kommentar


        • #5
          so hab ich nun so gelöst, und es scheint zu gehen..

          PHP-Code:
          $path '/var/www/'.$user;

          $rpath realpath($path.$_GET['dir']);
          if(
          substr($rpath,0,strlen($path)) != $path) {
            die(
          "Nana da darfst du doch nicht hin!");

          nur mal so für die leutz die es mal brauchen sollten.. danke noch mal für den tipp mit realpath()
          mfg

          Kommentar

          Lädt...
          X