[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