Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2006, 09:54
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Bueno .. esa manera de llamar a un archivo externo es muy comoda para tu programación .. pero de lo más inseguro que hay como ya has comprobado.

Como recomendación .. NUNCA inyectes directamente sobre un "include()" o función que llame a un archivo (fopen() .. readfile() .. etc) un dato que te venga en forma externa al script (por GET/POST .. ). DEBES filtrarlo.

Por ejemplo .. filtrar por expresiones regulares que se indique un nombre de archivo sólo sin http:// .. sin (..) para que no "suban" por la estructura de directorios del servidor .. etc.

Lo más sano es no complicarse con filtros que "podrían fallar" .. más bien no aceptar un nombre directo de un archivo sino un "identificador":

Código PHP:
$archivo="pordefecto.php";

if (
$_GET['seccion']=="admin"){
   
$archivo="admin.php";
}
include (
$archivo); 
O mejor con un switch() .. o con un array que contenga tu asociación identificador -> archivo que le corresponde .. etc.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.