Foros del Web » Programando para Internet » PHP »

Seguridad Paginacion

Estas en el tema de Seguridad Paginacion en el foro de PHP en Foros del Web. Hola buenas noches quería saber si hay algún tipo de problema de seguridad en este código: arme este código basándome mas o menos en otros ...
  #1 (permalink)  
Antiguo 09/10/2013, 15:02
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Seguridad Paginacion

Hola buenas noches quería saber si hay algún tipo de problema de seguridad en este código: arme este código basándome mas o menos en otros códigos y eh creado esto pero quisiera saber si hay algún tipo de vulnerabilidad donde puedan inyectar algo. y si se pudiera optimizar el código muchísimo mejor

Código PHP:
Ver original
  1. <?php
  2.  require_once('../kernel/config.php');
  3.  
  4. if(isset($_GET['page']))
  5. {
  6.         $x = $_GET['page'];
  7.         $q = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT '. $x .', 10');
  8.         while($news = mysql_fetch_assoc($q))
  9.         {
  10.                 echo $news['title'] . '</br>';
  11.         }
  12. }
  13. else
  14. {
  15.         $q = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 10');
  16.         while($news = mysql_fetch_assoc($q))
  17.         {
  18.                 echo $news['title'] . '</br>';
  19.         }
  20. }
  21.  
  22. if(isset($_GET['page']))
  23. {
  24.     $qPag = mysql_query('SELECT * FROM news');
  25.     if($_GET['page'] == 0)
  26.     {
  27.         echo '<a href="./index.php?page=10">Siguiente</a>';
  28.     }
  29.     elseif(mysql_num_rows($qPag) > $_GET['page'])
  30.     {
  31.         $next = $_GET['page'] + 10;
  32.         $prev = $_GET['page'] - 10;
  33.         echo '<a href="./index.php?page='. $prev .'">Atras</a> -';
  34.         echo ' <a href="./index.php?page='. $next .'">Siguiente</a>';
  35.     }
  36. }
  37. else
  38. {
  39.     $qPag = mysql_query('SELECT * FROM news');
  40.     if(mysql_num_rows($qPag) > 10)
  41.     {  
  42.         echo '<a href="./index.php?page=10">Siguiente</a>';
  43.     }
  44. }
  45.  
  46. ?>
  #2 (permalink)  
Antiguo 09/10/2013, 15:08
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Seguridad Paginacion

Tu código tiene los siguientes errores:

Es vulnerable a inyección SQL al no verificar el tipo de dato ingresado (es mala práctica confiar en el usuario)

Tu código esta usando mysql_ que ya esta obsoleta, debes de migrar a mysqli_ o PDO, haciendo estoy y haciendo consultas parametrizadas puedes solventar el primer punto.

No des por sentado de que siempre habrá datos que retornar, muchas veces puede no ser este el caso y es muy útil saber en que momento una consulta no retornará nada

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 09/10/2013, 15:14
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Seguridad Paginacion

Cita:
Iniciado por jonni09lo Ver Mensaje
Tu código tiene los siguientes errores:

Es vulnerable a inyección SQL al no verificar el tipo de dato ingresado (es mala práctica confiar en el usuario)

Tu código esta usando mysql_ que ya esta obsoleta, debes de migrar a mysqli_ o PDO, haciendo estoy y haciendo consultas parametrizadas puedes solventar el primer punto.

No des por sentado de que siempre habrá datos que retornar, muchas veces puede no ser este el caso y es muy útil saber en que momento una consulta no retornará nada

Saludos
Pero la vulnerabilidad se podria resolver con mysql_real_escape_string o algo parecido?
  #4 (permalink)  
Antiguo 09/10/2013, 15:21
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Seguridad Paginacion

Es una opción, pero para que seguir usando algo que dentro de un futuro desaparecerá?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 09/10/2013, 15:26
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Seguridad Paginacion

poder se podria pero te cuento , aprovechando esa vulnerabilidad se puede tener control total de la base de datos modificar borrar insertar lo que sea, obtner cualquier dato de la bd , vamos se puede hacer de todo , ahora yo te recomiendo, ¿por que no dedicar mas tiempo a corregir la vulnerabilidad? , por que no haces caso de las recomendaciones que te dieron mysql esta obsoleta debes de migrar a PDO o mysqli en su defecto , si se te recomendo esto piensa que sera por algo , leeiste algo sobre el tema PDO o mysqli , mysql obsoleta? antes de publicar tu respuesta?

sanea y valida los datos y escapa la consulta PDO lo hace automaticamente . . . que dilema.

Última edición por webankenovi; 09/10/2013 a las 15:47

Etiquetas: mysql, paginacion, seguridad, select, sql
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 08:29.