Show
Ignore:
Timestamp:
11/28/06 00:05:17 (2 years ago)
Author:
anarcat
Message:

permettre l'utilisation de chemins complets vers des fichiers dans
convertabsolute()

utiliser seulement convertabsolute() pour verifier les fichiers dans
CreateFile?... le fix de sécurité de nahuel ([1738]) empêchait toute
création de fichier.

ainsi, tout fichier passé au travers du filtre convertabsolute() va le
rendre sain pour le browser

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • alternc/trunk/bureau/class/m_bro.php

    r1738 r1742  
    9292    // Passage du root en chemin réel (différent avec un lien) 
    9393    $root=realpath($root) ; 
     94    // separer le chemin entre le repertoire et le fichier 
     95    $file = basename($dir); 
     96    $dir = dirname($dir); 
    9497    $dir=realpath($root."/".$dir); 
    95  
     98    // verifier que le repertoire est dans le home de l'usgaer 
    9699    if (substr($dir,0,strlen($root))!=$root) { 
    97100      return false; 
    98101    }  
     102    // recomposer le chemin 
     103    $dir = $dir . '/' . $file; 
    99104    if ($strip) { 
    100105      $dir=substr($dir,strlen($root)); 
     
    104109      // problèmes de lien depuis /var/alternc !  
    105110      $dir=$root_alternc . substr($dir,strlen($root)); 
    106     } if (substr($dir,-1)=="/") { 
     111    } 
     112    if (substr($dir,-1)=="/") { 
    107113      return substr($dir,0,strlen($dir)-1); 
    108114    } else 
     
    283289    $file=ssla($file); 
    284290    $absolute=$this->convertabsolute($dir."/".$file,0); 
    285     if ($absolute && !file_exists($absolute) && checkuserpath($absolute."/".$file) != 0) { 
     291    if (!$absolute) { 
     292      $err->raise("bro",1); 
     293      return false; 
     294    } 
     295    if (!file_exists($absolute)) { 
    286296      touch($absolute); 
    287       $db->query("UPDATE browser SET crff=0 WHERE uid='$cuid';"); 
    288       return true; 
    289     } else { 
    290       $err->raise("bro",1); 
    291       return false; 
    292     } 
     297    } 
     298    $db->query("UPDATE browser SET crff=0 WHERE uid='$cuid';"); 
     299    return true; 
    293300  } 
    294301