Foros del Web » Programando para Internet » PHP »

Ayuda con "include"

Estas en el tema de Ayuda con "include" en el foro de PHP en Foros del Web. Hola amigos del foro... Tengo el siguiente problema: Utiizo lo siguiente para enlazar mis paginas... $fichero=$seccion.".php"; include "$fichero"; (incluido en el index.php) el link que ...
  #1 (permalink)  
Antiguo 18/08/2006, 23:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Ayuda con "include"

Hola amigos del foro...
Tengo el siguiente problema:
Utiizo lo siguiente para enlazar mis paginas...

$fichero=$seccion.".php";
include "$fichero";

(incluido en el index.php)

el link que llama seria:
index.php?seccion=nombredepagina (sin extención ".php")

De esta manera tengo un archivo llamado ".php" seria el que "index" incluye por defecto al ingresar al site.

El problema es que ya fui atacado muchas veces por hackers que utilizan editores remotos , que solucion tengo para poder seguir utilizando este sistema convinando algun codigo de seguridad que escanee las paginas que hay en el servidor y si no estuvieran rediccionarian al index, o alguna solucion diferente ???,

Gracias.

Última edición por fer03pe; 19/08/2006 a las 00:42
  #2 (permalink)  
Antiguo 18/08/2006, 23:33
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
Código PHP:
$page=$_GET['pagina'];
$path="/donde/tengo/mis/archivos/a/incluir"// :P

if(isset($pagina) && !empty($pagina)) // ves si la pagina que esta reciviendo por get esta y si no esta vacia la varable para evitar erres de include
{// luego haces un switch
switch($pagina)
    {
    case 
"contactenos" : include($path.'contaccc.php');
    break;     
    
// como ves mando por el get un nombre diferente al de incluir
        
    // aqui puedes seguir poniendo los distintos casos que quieras
    
default: include($path.'lo_k_sea.php'); // o puedes redirigir a otra page
    
}

quizas no sea la mejor opcion pero con este sueno eso fue lo k em salio pero la veo bien :P

pero si te cuidas mucho con esa forma
__________________
-----------------------------
Edgar Gonzalez
  #3 (permalink)  
Antiguo 18/08/2006, 23:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Edgar: muchas gracias!!!.. voy a implementarlo y ver q pasa.. igualmente si alguien tiene otras opciones no me ofendo..jajajaj.
Gracias.
Cuidado... si no concuerdan las expresiones q posteo "Edgar" es porque yo edite el mensaje nuevamente.

Última edición por fer03pe; 19/08/2006 a las 00:40
  #4 (permalink)  
Antiguo 19/08/2006, 23:12
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
Oh ok fer03

puedes hacer esto en tu index.php

Código PHP:

$pagina
=$_GET['seccion'];
$path="/donde/tengo/mis/archivos/a/incluir"// :P

if(isset($pagina) && !empty($pagina) && file_exists($path$page)) // ves si la pagina que esta reciviendo por get esta y si no esta vacia la varable para evitar erres de include
{// luego haces un switch
switch($pagina)
    {
    case 
"contactenos" : include($path.'contaccc.php');
    break;     
    
// como ves mando por el get un nombre diferente al de incluir
        
    // aqui puedes seguir poniendo los distintos casos que quieras
    
default: include($path.'lo_k_sea.php'); // o puedes redirigir a otra page
    
}

pero puedes coger esta que es mas sencilla, en esta solo chequeas si el archivo esta en tu server y s es cierto lo incluyes

Código PHP:

$pagina
=$_GET['seccion'];
$path="/donde/tengo/mis/archivos/a/incluir"// :P

// ves si la pagina que esta reciviendo por get esta y si no esta vacia la varable para evitar erres de include
if(file_exists($path.$page))
    {
    include 
'$path$pagina.php';
    }

} else{        
// de no ser asi
    
echo "Seccion no encontrada";

saludos,
__________________
-----------------------------
Edgar Gonzalez
  #5 (permalink)  
Antiguo 20/08/2006, 08:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Ok.. Gracias Edgard, lo pruebo y te comento.
  #6 (permalink)  
Antiguo 20/08/2006, 12:10
 
Fecha de Ingreso: septiembre-2003
Ubicación: Chile
Mensajes: 30
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola:

Tambien pasé por lo mismo y lo solucione así:

Código PHP:
            <?php 
            
            
function quitar($mensaje
            { 
            
$mensaje str_replace("<","",$mensaje); 
            
$mensaje str_replace(">","",$mensaje); 
            
$mensaje str_replace("\'","",$mensaje); 
            
$mensaje str_replace('\"',"",$mensaje); 
            
$mensaje str_replace("\\\\","",$mensaje);
            
$mensaje str_replace("www","",$mensaje); 
            
$mensaje str_replace("http","",$mensaje); 
            
$mensaje str_replace("/","",$mensaje); 


 
            return 
$mensaje
            } 
                if(
$page=="")
                {
                @include(
"inicio.php");
                }
                else
                {
                
$separar explode(':',$page);
                
$separar2 explode('.',$page);
                
$separar3 explode('/',$page);

                if(
$separar[0]=="http" || $separar2[0]=="www" || $page=="/etc/passwd" || $page=="/etc/httpd/conf/httpd.conf")
                {
                echo
"<span class=textos>Path Invalido</span>";
                }
                else
                {
                
$page2=quitar($page);
                @include(
"$page2");
                }
                }
                 
?>
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 03:25.