Foros del Web » Programando para Internet » PHP »

paronico ayudaaa!! obligar dato a pasar por GET!!

Estas en el tema de paronico ayudaaa!! obligar dato a pasar por GET!! en el foro de PHP en Foros del Web. hola que tal estoy totalmente chiflado ya lo se.---- se me ha ocurrido algo que no logro implementar, va en ralidad no se si estara ...
  #1 (permalink)  
Antiguo 26/10/2009, 21:52
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
paronico ayudaaa!! obligar dato a pasar por GET!!

hola que tal estoy totalmente chiflado ya lo se.----

se me ha ocurrido algo que no logro implementar, va en ralidad no se si estara bien o no...
mi idea es obligar ciertos datos ser pasados por get pero no en un link sino en un formulario pra cada links...
por ejemplo:

supongamos que tengo el siguiente link que pasara el nombre de una noticia mas su numero ID

<a href="noticia.php?id=<?= $nota['id']; ?>&amp;ver=lista"><?=$titulo_noticia?></a>

ahora mi idea es crear un formulario metodo GET para tratar en la misma pagina el ID y el titulo de la noticia, o sea validar luego si esta todo correcto envio a la pagina que recibira los datos donde vuelvo a tratar los parametros utilizando

$titulo_noticia = htmlentities($_GET['noticia'],ENT_QUOTES);

utilizo preg_match pra verificar que sean letras

luego tomo el ID pasandolo por !ereg("^[0-9]+$ para verificar que sean numeros,

esta todo bonito ¿verdad? pero no se si esto no sera exagerar un poco o si tiene sentido validar dos veces....

antes del envio de los datos he generado url amigables para que las url sean en ves de :

noticia.php?id=112&amp;ver=lista

pase a ser ---> noticias/112/titulo-noticia/

o sea que pareceran directorios por lo cual necesito evitar que sean modificados los id y titulos...

alguna sugerencia de como hacer dos validaciones....

Última edición por zerpico_01; 26/10/2009 a las 21:59
  #2 (permalink)  
Antiguo 27/10/2009, 06:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: paronico ayudaaa!! obligar dato a pasar por GET!!

la idea es validar en el receptor, porque si validas en el emisor y no en el receptor corres el riesgo de que te envíen la misma data sin validar y por ende tratar de inyectar un sql.

yo trato de validar en ambos casos, pero doy prioridad a validar en el receptor (que seria php) y en el emisor (básicamente javascript) lo hago para mejorar la interfaz.

si usas url amigables no hace falta que la url del link sea así, puedes hacerla tal como diseñaste la url amigable:

<a href="noticia/<?= $nota['id']; ?>/"><?=$titulo_noticia?></a>//me imagino que es así
  #3 (permalink)  
Antiguo 27/10/2009, 07:03
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: paronico ayudaaa!! obligar dato a pasar por GET!!

entendi, yo pesaba que si que era mejor pero claro lo importate es la pagina que recibe ya me aclaro, pues las urls las hice

//combierto con $amigables tomada desde un archivo
$amigables = $categorizante;

//paso a url amigable
$dato_nombre=urls($amigables);

$dato_id=$categorizacion_row['categorizacion_id'];


<a href="categorias/<?php echo $categorizacion ."/".$dato_nombre."/" ?>" class="hplist"><?=$categorizante?></a>&nbsp;

lo unico que no logro cachar es $categorizante que es el nombre de la categoria
se muestra en la urls pero no se como validarlo en el archivo que recibe pues use
!preg_match("/^[a-zA--]+$/" pero no registra nada, o sea cuando modifico la urls no valida nada...
algun problema si lo tomo con
$HTTP_GET_VARS


la variable categorizacion o sea el ID si lo tomo y valido carrectamente, no se si lo hago bien...

tomo la variable en la pagina que recibe
$categorizacion= htmlentities($_GET[categorizacion],ENT_QUOTES);

primero verifico que sea !preg_match("/^[0-9]+$/"
luego IF $_GET[categorizacion] >12) ---lo mando a una pagina de error, si cambio el numero en la urls incluso me manda a la pagina de error

luego if(is_numeric($_GET[categorizacion]))
///ejecuto sentencia mysql con
$categorizacion=htmlspecialchars($_GET['categorizacion'], ENT_QUOTES);

$sql=sprintf("select * from categorias_inter where categorias_p=\"". stripslashes( mysql_real_escape_string($categorizacion)). "\" order by categorias_name");


esta bien hacerlo asi, porque ya no me he leido miles de manuales y post de seguridad y no se que esta bien o que esta mal :(



gracias por la ayuda!!

Última edición por zerpico_01; 27/10/2009 a las 07:17
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 07:39.