Foros del Web » Programando para Internet » PHP »

Cual es el problema con las magic_quotes?

Estas en el tema de Cual es el problema con las magic_quotes? en el foro de PHP en Foros del Web. Hola a todos, estaba leyendo por el foro y veo que se dice que las magic quotes ON pueden generar problemas de seguridad, claculo que ...
  #1 (permalink)  
Antiguo 02/11/2008, 19:09
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 7 meses
Puntos: 0
Cual es el problema con las magic_quotes?

Hola a todos, estaba leyendo por el foro y veo que se dice que las magic quotes ON pueden generar problemas de seguridad, claculo que porque pueden facilitar la inyeccion SQL pero... no comprendo como si lo unico que hacen segun me dijeron por ahi es ahorrarnos el poner addslashes y stripslashes...

Es cierto que pueden generar estos problemas de seguridad??? si es asi de que manera pueden hacerlo???

pregunto lo segudno porque seguramente algunos van a decir si los genera pero uno les pregunta PORQUE?? y no saben que contestar mas que porque si... me gustaria que alguien que entienda el porque pueda darme una respuesta logica.

Saludos

Desde ya yo utilizo magic quotes off pero solo lo hago por esto qeu dicen pero no entiendo el porque.

Gracias.
  #2 (permalink)  
Antiguo 02/11/2008, 22:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Cual es el problema con las magic_quotes?

Hola matiD,

No es que sea inseguro, de hecho es seguro, pero es mejor que tu como programador hagas esa tarea a asumir que PHP lo va a hacer ya que no todos los servidores tienen la directiva activada/disponible. Otro problema es que a partir de PHP6 esta caracteristica sera desactivada y no existira, y si programas asumiendo que si, te va a traer dolores de cabeza al migrar a PHP6.

Por otro lado usando magic_quotes PHP escapa todos los datos que vienen por Get, Post, Cookie, etc. Por lo que hablando en rendimiento hacer que tus scripts sean mas lentos por lo que siempre es mejor escapar los datos que realmente vas a necesitar.

Saludos.
  #3 (permalink)  
Antiguo 03/11/2008, 12:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cual es el problema con las magic_quotes?

En realidad, cualquiera haya sido el motivo por el cuál se creo esa directiva, es un problema más que una solución, y es por eso que ya ha desaparecido en PHP 6 (ver). Fuera de la carga al servidor, el máximo problema era/es justamente lo que GatorV menciona: No todos los servidores tienen la misma configuración. magic_quotes, register_globals, y otras directivas tan variables entre distintos servidores hacen que un programador deba pensar tanto en A como en B.

Ejemplo, tengo un formulario. Si asumo que el servidor tiene magic_quotes en ON, entonces no será necesario hacer nada con los datos de entrada, pues hasta cierto punto ya son seguros. Obviamente el script pensado así fallará en servidores con magic_quotes OFF. Ahora, si asumo que magic_quotes está OFF, entonces en el script tendremos que escapar los datos del formulario. Eso es lo ideal. Pero si corremos ese script en un servidor con magic_quotes ON, los datos serán escapados dos veces. Y eso ya es un problema.

Es cierto, hay una función que permite ver el estado de magic_quotes (get_magic_quotes_gpc()) para decidir si se deben escapar o no los datos previo procesamiento. Sin embargo es poco usada. He visto infinidad de scripts que asumen una u otra posición, pero no las dos.

Esta "inestabilidad", mejor digo variabilidad, es lo que hace que magic_quotes, a mi parecer, sea un problema. Si tuviese un comportamiento constante, sin duda sería una gran ayuda.

Saludos,
  #4 (permalink)  
Antiguo 03/11/2008, 22:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Cual es el problema con las magic_quotes?

muchisimas gracias... nunca mejor explicado.

Saludos.
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 21:40.