Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-05-2009 18:33:02

devkaty
Nouveau membre
Date d'inscription: 05-05-2009
Messages: 7

faille de zend_view

salut ,
j'ai un probleme avec zend_view , j'utilise zend_paginator alors j'ai besoin de faire le redirection vers le view du paginator :
<?= $this->paginationControl($this->array,'All','../../../default/views/scripts/pagination/pagination.phtml'); ?>

j'ai erreur suivante :

Message: Requested scripts may not include parent directory traversal ("../", "..\" notation)

Hors ligne

 

#2 05-05-2009 19:07:13

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: faille de zend_view


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 05-05-2009 20:43:37

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: faille de zend_view

baseUrl

A+JYT

Hors ligne

 

#4 06-05-2009 11:29:10

devkaty
Nouveau membre
Date d'inscription: 05-05-2009
Messages: 7

Re: faille de zend_view

merci pour vs réponse , mais moi je veux enlever :
$view->setLfiProtection ( false );
il ya pas solution

Hors ligne

 

#5 06-05-2009 11:39:19

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: faille de zend_view

Hello,

Un realpath:

Code:

<?= $this->paginationControl($this->array,'All', realpath('../../../default/views/scripts/pagination/pagination.phtml')); ?>

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 06-05-2009 12:19:56

devkaty
Nouveau membre
Date d'inscription: 05-05-2009
Messages: 7

Re: faille de zend_view

ça marche pas par ce j'ai le view de pagination dans autre module , alors il donne autre erreur :

Warning: Zend_View::include(/../../../../application/modules/front/views/scripts/)

dans le module front que j'utilise le paginator , et le view de paginator existe dans autre module default.

Dernière modification par devkaty (06-05-2009 12:32:10)

Hors ligne

 

#7 06-05-2009 13:56:35

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: faille de zend_view

Code:

ln -sfn ../../../default/views/scripts/pagination/pagination.phtml

Si t'es sous linux biensur..


----
Gruiiik !

Hors ligne

 

#8 06-05-2009 15:29:10

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: faille de zend_view

Attention à la sémantique de ../ ou ./

. et ../ sont relatif au script qui s'exécute pas relatif au fichier qui contient l'instruction.
ex :

Code:

WWW/
   a.php
   dir2/
     b.php
     dir3/
         c.php

dans b.php je fais

Code:

echo 'hello b';

dans c.php je fais

Code:

include '../b.php';

et dans a.php je fais

Code:

include './dir2/dir3/c.php';

si j'appelle l'URL
http://host/dir2/dir3/c.php j'obtiens 'hello b'
par rapport au script qui s'exécute soit donc c.php j'inclus dans le dossier supérieur le fichier b.php qui affiche 'hello b'

maintenant si j'appelle
http://host/a.php
celui-ci inclus ./dir2/dir3/c.php soit donc le fichier c.php qui est dans dir3 lui-même placé dans le dossier dir2 qui est dans le même dossier que le script qui s'exécute soit a.php
jusqu'ici rien de particulier
maintenant le fichier c.php inclus ../b.php soit donc le fichier b.php situé dans le dossier parent du script qui s'exécute soit donc le parent du dossier contenant a.php (ce n'est c.php qui est exécuté il n'est qu'inclus) donc le parent de WWW et là ça plante.

en fait dans c.php on voulait le dossier parent de celui contenant c.php lui-même.

une solution écrire les chemin en dur
chose que je déconseille vivement.

realpath ne fonctionne pas car il travaille comme le moteur zend et on obtient le même comportement.

la solution s'appelle dirname et __FILE__
__FILE__ est toujours le nom du fichier qui le contient
dirname est une fonction retournant le chemin du dossier contenant le fichier dont on donne le chemin big_smile

pour faire simple
si on veut ./ par raport au fichier dans lequel on l'écrit alors écrire dirname(__FILE__)
si on veut ../ par raport au fichier dans lequel on l'écrit alors écrire dirname(dirname(__FILE__))
dans notre fichier c.php on remplace

Code:

include '../b.php';

par

Code:

include dirname(dirname(__FILE__)) . '/b.php';

et tout rentre dans l'ordre.

dans ZF le fichier qui s'exécute est index.php celui qui ce trouve dans le dossier htdocs
tous les chemins relatif en . et .. le sont par rapport à lui

A+JYT

Dernière modification par sekaijin (06-05-2009 15:33:10)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages