[Programación] RE: [Programación] Problemas en php
Exequiel M Rivas Gadda
programacion@lugro.org.ar
Thu, 25 Nov 2004 10:04:00 -0300
Hola,
Realmente no sé muy bien lo que están deseando hacer, pero yo haría algo
como esto:
$ids[0] = (int)$ids[0];
Y ya con eso se te debería terminar el problema.
Igual podrias verificar $ids usando algo así como:
$ids = "24,5";
if(eregi("[0-9],[0-9]", $ids))
echo "Bien ingresado<br />";
Espero que les sirva, saludos
Exequiel
-----Mensaje original-----
De: programacion-admin@lugro.org.ar
[mailto:programacion-admin@lugro.org.ar]En nombre de KSTOR
Enviado el: miércoles, 24 de noviembre de 2004 9:26
Para: programacion@lugro.org.ar
Asunto: [Programación] Problemas en php
-----BEGIN PGP SIGNED MESSAGE-----Hash: SHA1
Amigos,...
Tengo un compañero que tiene en su página una especie de foro en PHP.El tema
es que existe un bugs por el cual le borran msj y ademáspueden ver la IP de
los que postean, etc...
El problema reside en que si en el navegar
ingresaswww.pagina.org/foro/reply.php?id=1,1Te devuelve el primer mensaje
(el id=1)Pero si pones:www.pagina.org/foro/reply.php?id=1,1 and ip like
1%Busca cualquier mensaje que cumpliese la segunda condición, e imaginoque
por este método es posible inyectar ordenes delete.Mi amigo añadió estas dos
instrucciones para intentar resolverlo
$ids[0] = intval($ids[0]);$ids[1] = intval($ids[1]);
Pero no tubo resultados.Ademas $ids = split( ",", $id, 2 ); solo deja pasar
numeros enteros pero en la practica es posible enviar cualquier orden a la
base de datos.Adjunto el código de la página en donde puede existir el
problema.
#################
<?php require( "../comun/cabeza.inc" ); require(
"functions.php" ); if( !isset( $id ) ) error( "LLamada incoreccta
a'reply.php'" ); $ids = (int) (array) $ids; $ids = split( ",",
$id, 2 );
$ids[0] = intval($ids[0]); $ids[1] = intval($ids[1]);
dbConnect(); $result = mysql_query( "SELECT rootID, name,
email, topic,msg, time, ip FROMforum WHERE rootID=${ids[ 1 ]}" ) or error(
mysql_error() ); $row = mysql_fetch_array( $result ); unset(
$result ); displayHeader( $forumTitle ); echo " <div
align=center> <center> <table border=0 cellpadding=0
cellspacing=0 width=80%> <tr> <td align=left
width=100% height=20> <a href=forum.php>Indice del
foro</a> </td> </tr> <tr>
<td width=100% height=1 bgcolor=#808080></td> </tr>
</table> </center> </div> <div align=center>
<center> <table border=0 cellpadding=0 cellspacing=0
width=80%> <tr> <b>De:</b> {$row[ 'name' ]} <a
href=mailto:{$row[ 'email' ]}>({$row['email' ]})</a><br>
<td><b>Asunto:</b> {$row[ 'topic' ]}<br> <b>Mens!
aje:</b> {$row[ 'msg' ]}</p>"; echo "
</tr> </table> </center> </div> <hr size=1
color=#808080 width=80%>"; if( $row[ 'ip' ] == "")
displayFooter(); echo " <a
name=reply> <center><h4>Responder</h4></center> <form
method=post action=post.php> <input type=hidden name=action
value=reply> <input type=hidden name=id value=\"${ids[ 0 ]},{$row[
'rootID' ]}\"> <div align=center> <center> <table
border=0 cellpadding=0 cellspacing=2 width=580> <tr>
<td width=80 height=18><b>Asunto:</b></td> <td width=500
height=18><input type=text name=topicvalue=\"RE: {$row['topic' ]}\" size=50
maxlength=50></td> </tr> <tr> <td
width=80 height=18><b>Nombre:</b></td> <td width=500
height=18><input type=text name=namesize=20
maxlength=20value='Anonimo'></td> </tr> !
<tr> <td width=80 height=18><b>E-mail:</b></td>
<td width=500 height=18><input type=text name=emailsize=40maxlength=40
value='Anonimo@anonino.com'></td> </tr> <tr>
<td width=80
valign='top'><b>Mensaje:</b><br><inputtype=submitvalue=Responder></td>
<td width=500><textarea style='height:auto;' name=msgrows=10
cols=50maxlength=2000></textarea></td> </tr> <tr>
<td width=80 height=18></td> <td width=500
height=18><input type=hidden name=getmailvalue=no></td>
</tr> <tr> <td width=80
height=18></td> <td width=500 height=18></td>
</tr> </table> </center> </div>
</form>"; require(
"../comun/pie.inc" ); displayFooter();
?>
#################
Que puede estar pasando?
SALUDOS y Gracias...
- --Martín Di Luzioekstor@yahoo.com.arJabber ID: kstor@lugro.org.arUsuario
GNU/Linux #320520 - http://counter.li.org/
«Copyleft--all rights reversed»
-----BEGIN PGP SIGNATURE-----Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFBpH3gPlxjGDYynKYRAnnEAJ9xGYj/TSQFlP3up5RfHfxze2rKswCfZQ3LsJBZxpvMS+Y5
47lhrHS1v00==eOu1-----END PGP SIGNATURE-----
_______________________________________________
Programacion mailing list
Programacion@lugro.org.ar
http://www.lugro.org.ar/mailman/listinfo/programacion