Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/07/2011, 10:31
Tooj
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 1
Respuesta: sql inyection en function. cómo resolver

Hola. disculpa que hasta ahora responda.

el acunetix dice que hay dos problemas con esta funcion de paginacion

el primero, es que se pueden insertar valores o caracteres diferentes a numeros, y el segundo, que se pueden insertar comillas dobles y asi realizar xss

<a href=""onmouseover=prompt(990955)>?%22onmouseover= prompt(990955)%3E&amp;paged=2">pag. siguiente &gt;&gt;</a>


o sea, que el problema está en esta parte del codigo.

Código PHP:
 $nxt_result mysql_query($nxt_request); 
            
$numposts mysql_num_rows($nxt_result); 
            
$max_page ceil($numposts $posts_per_page); 
        } 
        if (!
$paged$paged 1
        
$nextpage intval($paged) + 1
        if (empty(
$p) && (empty($paged) || $nextpage <= $max_page)) { 
            echo 
'<a href="'
            echo 
next_posts($max_page); 
            echo 
'">'htmlspecialchars($label) .'</a>'
creo que el primer problema, de insertar valores distintos a numeros se solucionaria con is_numeric, como comenta iviamontes.

he buscado informacion al respecto pero no encuentro bien a bien como aplicarla.

$max_page tiene que ser is_numeric... tal vez puedo concatenar otra variable, para hacer algo asi

Código PHP:
 $nxt_result mysql_query($nxt_request); 
            
$numposts mysql_num_rows($nxt_result); 
            
$max_page ceil($numposts $posts_per_page); 
            
$max_pag is_numeric($max_page); 
creo que puede funcionar, voy a probarlo... aunque me parece que no funciona

y tampoco si la uso asi:

Código PHP:
$max_page is_numeric(ceil($numposts $posts_per_page)); 
pero la onda de las comillas no se bien como resolverlo. si uso comilla simple, se cierra el echo, pero donde abro las comillas dobles para el link, aunque tambien los links funcionan con comillas simples

alguna idea??


Código PHP:
 echo '<a href="'
            echo 
next_posts($max_pag); 
            echo 
'">'htmlspecialchars($label) .'</a>'

gracias.

Última edición por Tooj; 24/07/2011 a las 10:41