Foros del Web » Programando para Internet » PHP »

Problema de seguridad

Estas en el tema de Problema de seguridad en el foro de PHP en Foros del Web. Hola, tengo un sitio done el index carga el resto de los archivos segun se le solicite Código PHP: <? $sec  =   $_REQUEST [ 'sec' ...
  #1 (permalink)  
Antiguo 19/07/2007, 15:57
Avatar de biffly  
Fecha de Ingreso: junio-2005
Mensajes: 315
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema de seguridad

Hola, tengo un sitio done el index carga el resto de los archivos segun se le solicite

Código PHP:
<?
$sec 
=  $_REQUEST['sec'];
if  (
$sec=="") {
$sec="main.php";
}
?>

<?  include($sec);?>
mi problema es que con este metodo es posible cargar archivos externos al sitio, es decir se puede cargar un archivo con comando en PHP dañino.

El tema puntual de mi consulta es saber si existe alguna forma en la que pueda comprobar si el archivo que se pasa en la variable $sec esta dentro del dominio o es un archivo externo.

Desde ya muchas gracias
__________________
Sigue al indio desnudo... Pero con precaución, atendiendo las señales de transito y comentando todo lo que haces.
REM Hay que encontrar el camino de regreso y no siempre es facil....
  #2 (permalink)  
Antiguo 19/07/2007, 16:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Re: Problema de seguridad

En lugar de eso podrias hacer algo asi:
Código PHP:
<?php
$default 
"main.php";
$sec $_REQUEST['sec'];

switch( 
$sec ) {
case 
"home":
      
$file "main.php";
      break;
case 
"contacto":
      
$file "contacto.php";
      break;
}
?>
contenido
<?php
include( $file );
?>
  #3 (permalink)  
Antiguo 19/07/2007, 16:22
Avatar de biffly  
Fecha de Ingreso: junio-2005
Mensajes: 315
Antigüedad: 14 años, 8 meses
Puntos: 0
Re: Problema de seguridad

Gracias GatorV, eso lo se, pero tambien requeriria realizar grandes cambios al sitio y modificar todos los links, lo que estoy buscado es algo que detecte que el archivo es uno externo al dominio.

Saludos
__________________
Sigue al indio desnudo... Pero con precaución, atendiendo las señales de transito y comentando todo lo que haces.
REM Hay que encontrar el camino de regreso y no siempre es facil....
  #4 (permalink)  
Antiguo 19/07/2007, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Re: Problema de seguridad

Si todos tus archivos los tienes en un directorio puedes usar:
Código PHP:
$realSec getcwd() . '/' $sec;
if( 
file_exists$realSec ) ) {
    include( 
$realSec );
} else {
    echo 
"Error archivo no permitido!";

Ese codigo lo que hace es verificar que el archivo este en la carpeta actual.

Saludos.
  #5 (permalink)  
Antiguo 19/07/2007, 16:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.975
Antigüedad: 16 años
Puntos: 20
Re: Problema de seguridad

Los archivos deben estar DEFINIDOS.

De lo contrario en una par de semanas la web va a l piso.
  #6 (permalink)  
Antiguo 19/07/2007, 17:06
Avatar de biffly  
Fecha de Ingreso: junio-2005
Mensajes: 315
Antigüedad: 14 años, 8 meses
Puntos: 0
Re: Problema de seguridad

gracias GatorV, probe tu ultima sugerencia y funciono perfecto. AnarKo a que te referis con DEFINIDOS?

Muchas Gracias :)
__________________
Sigue al indio desnudo... Pero con precaución, atendiendo las señales de transito y comentando todo lo que haces.
REM Hay que encontrar el camino de regreso y no siempre es facil....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:47.