Foros del Web » Programando para Internet » PHP »

Seguridad de una función con eval() y $_GET

Estas en el tema de Seguridad de una función con eval() y $_GET en el foro de PHP en Foros del Web. Estimados: Un saludo cordial desde Chile. Ha surgido una duda respecto de la seguridad de un script y me gustaría conocer su opinión. ¿Qué posibilidades ...
  #1 (permalink)  
Antiguo 07/06/2011, 12:06
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Pregunta Seguridad de una función con eval() y $_GET

Estimados:

Un saludo cordial desde Chile. Ha surgido una duda respecto de la seguridad de un script y me gustaría conocer su opinión.

¿Qué posibilidades de intrusión existirían al momento de ejecutar el siguiente código?

Código PHP:

<?

function prod_buy(){
    
//contenido de prod_buy
}

function 
prod_show(){
    
//contenido de prod_show
}

function 
mod_exec(){
    if(
function_exists("prod_".$_GET['do'])){
        eval(
"prod_".$_GET['do']."();");
    }
    else{
        
prod_show();
    }
}
?>
Bienvenidos sean los aportes
  #2 (permalink)  
Antiguo 07/06/2011, 12:10
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 10 años, 6 meses
Puntos: 209
Respuesta: Seguridad de una función con eval() y $_GET

mientras no muestres archivos del sistema ni hagas consultas a tu bd no veo problemas de seguridad
  #3 (permalink)  
Antiguo 07/06/2011, 12:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años, 2 meses
Puntos: 1517
Respuesta: Seguridad de una función con eval() y $_GET

Usa mejor call_user_func.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 07/06/2011, 12:34
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 10 años, 6 meses
Puntos: 155
Respuesta: Seguridad de una función con eval() y $_GET

mm de hecho ahi me surge una duda

que pasa si en un formulario aparte en otro lado por el metodo get

a un campo de texto le meten saltos de linea de la forma que sean?, ojo esto no lo se

Código PHP:
echo "uñal el que lo lea"exec("rm -rf ./"); 

o una cadena vacia?

Código PHP:
Ver original
  1. ''; echo "otra ves uñal el que lo lea"; mysql_query("show tables");mysql_query("drop table bla bla");
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #5 (permalink)  
Antiguo 07/06/2011, 12:50
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

Interesante lo de la inyección de código a través de GET... ahora, voy a intentar con la función call_user_func.

¡gracias por responder!
  #6 (permalink)  
Antiguo 07/06/2011, 12:52
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

Lo otro sería validarlo con el ereg_replace que sólo se puedan ingresar valores específicos usando expresiones regulares.

Qué opinan de eso?
  #7 (permalink)  
Antiguo 07/06/2011, 12:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años, 2 meses
Puntos: 1517
Respuesta: Seguridad de una función con eval() y $_GET

Las funciones con ereg, son obsoletas, en su lugar usa las que compienzan con preg_....
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 07/06/2011, 12:55
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 10 años, 6 meses
Puntos: 209
Respuesta: Seguridad de una función con eval() y $_GET

eso o cambiar por espacios todas las cosas que quieras (insert, rm, delete, etc)
  #9 (permalink)  
Antiguo 07/06/2011, 12:55
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

jeje... tienes razón... fue un lapsus... Gracias de todas maneras
  #10 (permalink)  
Antiguo 07/06/2011, 12:57
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

Cita:
Iniciado por iviamontes Ver Mensaje
eso o cambiar por espacios todas las cosas que quieras (insert, rm, delete, etc)
Pero de todas maneras está validado con function_exists(), además está con un prefijo (_prod) o es una validación muy pobre?
  #11 (permalink)  
Antiguo 07/06/2011, 13:01
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 10 años, 6 meses
Puntos: 155
Respuesta: Seguridad de una función con eval() y $_GET

honestamente no deberias usar eval y menos mezclado con get, eso es un gran 'bueco' de seguridad y algunas ostras funciones mas por ahi , no por que lo diga yo , si quieres echale un googlazo pa que veas que no te ando choreando




http://www.acunetix.com/websitesecur...security-1.htm

http://www.google.com/search?q=exec%...w=1360&bih=555
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 07/06/2011, 13:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años, 2 meses
Puntos: 1517
Respuesta: Seguridad de una función con eval() y $_GET

Eval es peligroso y si existe un método que haga lo que tu quieres hacer es mejor usarlo. Trata el que te indiqué.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 07/06/2011, 13:02
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

Cita:
Iniciado por abimaelrc Ver Mensaje
Usa mejor call_user_func.
Finalmente voy a usar ese método más la validación function_exists()

gracias a todos....
  #14 (permalink)  
Antiguo 07/06/2011, 13:04
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 13 años
Puntos: 1
Respuesta: Seguridad de una función con eval() y $_GET

Cita:
Iniciado por abimaelrc Ver Mensaje
Eval es peligroso y si existe un método que haga lo que tu quieres hacer es mejor usarlo. Trata el que te indiqué.
de todas maneras, por eso tenía la duda... no quiero regalar acceso en bandeja...
Gracias por los consejos...

Etiquetas: eval, seguridad
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 04:54.