Foros del Web » Programando para Internet » PHP »

posible xss o injection??

Estas en el tema de posible xss o injection?? en el foro de PHP en Foros del Web. hola gente normalmente mis sitios php incluyen en el index (el cual incluye las secciones) el siguiente codigo: Código PHP: foreach( $_REQUEST  as  $nombre_campo  =>  ...
  #1 (permalink)  
Antiguo 08/11/2006, 14:12
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
posible xss o injection??

hola gente

normalmente mis sitios php incluyen en el index (el cual incluye las secciones) el siguiente codigo:

Código PHP:
foreach($_REQUEST as $nombre_campo => $valor){ 
   
$asignacion "\$" $nombre_campo "='" $valor "';"
   eval(
$asignacion); 

no hace mas que capturar todo el $_REQUEST y transformarlo en variables comunes..




intentando evitar ataques via XSS o SQL injection es el unico codigo que me resta por analizar, pero no logro llegar a la conclusion de si es o no peligroso o deberia escribir todas y cada una de las variables.



ustedes que opinan?
  #2 (permalink)  
Antiguo 08/11/2006, 18:52
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
con el codigo que muestras no es posible determinar si es vulnerable a ataques xss o sql injection, pero es vulnerable a otro tipo de ataque aun peor, porque se puede ejecutar codigo php arbitrario (gracias a eval)

una alternativa a lo que muestras, podria ser extract($_REQUEST);, pero ignoro las consecuencias que esto pueda acarrear en la aplicacion que tienes
  #3 (permalink)  
Antiguo 09/11/2006, 06:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No usaría en general la técnica que muestras .. por lo menos aplicada a $_REQUEST, .. fijate que contiene dicho array superglobal: todo lo que llega en GET, POST o sea una COOKIE, así que estás en los mismos problemas (no de XSS o inyección SQL en sí) que cuando PHP "sacó" o definió los arrays superglobales por separado: $_GET, $_POST .. etc para solventar esos problemas.

Si quieres convertir en variables simples lo que venga en cierto método .. hazlo, pero sólo de que NECESITES .. es decir .. aplica extract() a $_POST .. o a $_GET pero no también a $_COOKIE.

Realmente deberías acceder directametne a los arrays por separado y no en forma global ..´

Por lo demás los ataques "XSS" o de inyección SQL van en función del filtrado que hagas al dato que te llega.

Para eso caso de XSS .. aplicar striptags() o función equivalente para elminiar todo lo que esté entre <.... y ...> que es código HTML/Javacript/etc a ejecutar con fines "maliciosos". Para el caso de "inyección SQL" una de las primeras técnicas a usar es la de "escapar" todo caracter potencialmente peligroso para ejecutar tu consulta SQL a tu BBDD con ayuda de mysql_real_escape_string() o función equivalente (addslashes() ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 09/11/2006, 07:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 44
Antigüedad: 20 años, 1 mes
Puntos: 0
uffff

muchisimas gracias a los dos por las respuestas, tendre que reveer el codigo de casi la mayoria de mis sitios :)


gracias nuevamente!
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:16.