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
This commit is contained in:
parent
976a0321f3
commit
bd8b73bf16
|
@ -91,11 +91,16 @@ class m_bro {
|
||||||
$root_alternc = $root ;
|
$root_alternc = $root ;
|
||||||
// Passage du root en chemin réel (différent avec un lien)
|
// Passage du root en chemin réel (différent avec un lien)
|
||||||
$root=realpath($root) ;
|
$root=realpath($root) ;
|
||||||
|
// separer le chemin entre le repertoire et le fichier
|
||||||
|
$file = basename($dir);
|
||||||
|
$dir = dirname($dir);
|
||||||
$dir=realpath($root."/".$dir);
|
$dir=realpath($root."/".$dir);
|
||||||
|
// verifier que le repertoire est dans le home de l'usgaer
|
||||||
if (substr($dir,0,strlen($root))!=$root) {
|
if (substr($dir,0,strlen($root))!=$root) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// recomposer le chemin
|
||||||
|
$dir = $dir . '/' . $file;
|
||||||
if ($strip) {
|
if ($strip) {
|
||||||
$dir=substr($dir,strlen($root));
|
$dir=substr($dir,strlen($root));
|
||||||
} else {
|
} else {
|
||||||
|
@ -103,7 +108,8 @@ class m_bro {
|
||||||
// et mettre la racine d'alternc pour éviter les
|
// et mettre la racine d'alternc pour éviter les
|
||||||
// problèmes de lien depuis /var/alternc !
|
// problèmes de lien depuis /var/alternc !
|
||||||
$dir=$root_alternc . substr($dir,strlen($root));
|
$dir=$root_alternc . substr($dir,strlen($root));
|
||||||
} if (substr($dir,-1)=="/") {
|
}
|
||||||
|
if (substr($dir,-1)=="/") {
|
||||||
return substr($dir,0,strlen($dir)-1);
|
return substr($dir,0,strlen($dir)-1);
|
||||||
} else
|
} else
|
||||||
return $dir;
|
return $dir;
|
||||||
|
@ -282,14 +288,15 @@ class m_bro {
|
||||||
global $db,$err,$cuid;
|
global $db,$err,$cuid;
|
||||||
$file=ssla($file);
|
$file=ssla($file);
|
||||||
$absolute=$this->convertabsolute($dir."/".$file,0);
|
$absolute=$this->convertabsolute($dir."/".$file,0);
|
||||||
if ($absolute && !file_exists($absolute) && checkuserpath($absolute."/".$file) != 0) {
|
if (!$absolute) {
|
||||||
touch($absolute);
|
|
||||||
$db->query("UPDATE browser SET crff=0 WHERE uid='$cuid';");
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
$err->raise("bro",1);
|
$err->raise("bro",1);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!file_exists($absolute)) {
|
||||||
|
touch($absolute);
|
||||||
|
}
|
||||||
|
$db->query("UPDATE browser SET crff=0 WHERE uid='$cuid';");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
|
|
Loading…
Reference in New Issue