Foros del Web » Programando para Internet » PHP »

duda con las consultas seguras a mysql

Estas en el tema de duda con las consultas seguras a mysql en el foro de PHP en Foros del Web. Hola, tengo dudas sobre como hacer las consultas a mysql, no se si utilizar la clase inputfilter o la libreria pdo, la idea es evitar ...
  #1 (permalink)  
Antiguo 20/12/2011, 15:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
duda con las consultas seguras a mysql

Hola, tengo dudas sobre como hacer las consultas a mysql, no se si utilizar la clase inputfilter o la libreria pdo, la idea es evitar los ataques xss sin necesidad de necesitar ninguna etiquete html, si utilizo la clase pdo algo como esto:

Código PHP:
Ver original
  1. <?php
  2. $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
  3. if ($stmt->execute(array($_GET['name']))) {
  4.   while ($row = $stmt->fetch()) {
  5.     print_r($row);
  6.   }
  7. }
  8. ?>

este es un ejemplo de php, si utilizo esta clase mi consulta es segura, o mejor utilizar inputfilter, o las dos, espero orientaciones de los expertos en php.

Saludos.
  #2 (permalink)  
Antiguo 20/12/2011, 15:49
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: duda con las consultas seguras a mysql

PDO a lo sumo puede evitar ataques de SQL inyection si lo usas adecuadamente, pero no contra XSS, eso lo tienes que controlar tú.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 20/12/2011, 16:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
Respuesta: duda con las consultas seguras a mysql

Hola maycolalvarez, gracias por tu aclaracion, entonces usare la clase inputfilter para los XSS, tengo otra duda, si yo por ejemplo paso por url un valor algo asin:

noticia_id=1

y el usuario quita el numero o introduce algun codigo, que puedo hacer con el error que da php, ya que no me gusta que lo vea el usuario dicho error, alguna sujerencia, saludos.
  #4 (permalink)  
Antiguo 20/12/2011, 16:23
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: duda con las consultas seguras a mysql

php tiene varias formas de controlar errores:

1 - para librerías tradicionales o desactivas los errores con error_reporting(0);, o desde el PHP.ini

2 - anteponiendo @ a la instrucción, el error no sale a la salida, ejemplo: @mysql_query();

3 - PDO genera excepciones, use try catch
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 20/12/2011, 16:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
Respuesta: duda con las consultas seguras a mysql

Perfecto ahora si se como controlar los errores, pero sigo teniendo dudas de como solucionar las variables que paso por url, si paso esa variable que postee arriba algo asin:

noticio_id=1 y el 1 no lo saco de ninguna variable si no que lo asigno yo estaticamente, pero claro el usuario puede injectar xss, y yo lo que quiero es que solo pueda tener ese valor, si me pueden orientar ante mis dudas, se lo agradeceria, saludos.
  #6 (permalink)  
Antiguo 20/12/2011, 16:51
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: duda con las consultas seguras a mysql

Cita:
Iniciado por tripoli Ver Mensaje
Perfecto ahora si se como controlar los errores, pero sigo teniendo dudas de como solucionar las variables que paso por url, si paso esa variable que postee arriba algo asin:

noticio_id=1 y el 1 no lo saco de ninguna variable si no que lo asigno yo estaticamente, pero claro el usuario puede injectar xss, y yo lo que quiero es que solo pueda tener ese valor, si me pueden orientar ante mis dudas, se lo agradeceria, saludos.
No lo veo complicado, solo usa condiciones.
if()

y si no vale "1", pues simplemente mediante un else() o elseif() no le muestres nada, o muestrale un error.
__________________
Programador jQuery & PHP
  #7 (permalink)  
Antiguo 20/12/2011, 17:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
Respuesta: duda con las consultas seguras a mysql

Hola, tienes razon pero perdona que me dado cuenta que mi problema no es este, hos comento mi problema por si alguien me puede dar la solucion, yo el valor de la noticia_id la seleciona el usuario con un select (los valores son numero)una vez selecionado le mando a un script donde muestro lo que quiere ver, pero claro una vez esta en el sitio sale en la url esto noticia_id=1, y estoy intentando injectar xss y funciona como lo puedo evitar?

saludos.
  #8 (permalink)  
Antiguo 20/12/2011, 17:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
Respuesta: duda con las consultas seguras a mysql

He visto en el manual de php que esta funcion strip_tags(), elimina todas las etiquetas, es fiable, solo con esta etiqueta puedo evitar los xss, en la variable que paso por url, si alguien me puedo aconsejar, saludos.
  #9 (permalink)  
Antiguo 21/12/2011, 10:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: duda con las consultas seguras a mysql

tripoli, te estás liando.

Lo que tu quieres evitar es SQL Injection. Tu tienes una url del estilo de http://miservidor.com/articulo.php&id_noticia=1, y quieres evitar que si ponen "http://miservidor.com/articulo.php&id_noticia=1;DELETE * FROM noticias" esto te afecte a la base de datos.

Tal cómo ha dicho maycoalvarez, con solo usar PDO y prepared statements te ahorras este problema.

El tema del XSS es diferente. XSS es que tu tienes una web donde puedes entrar un texto y guardarlo en la base de datos (este foro, por ejemplo), y que un usuario malicioso pone un código que te redirecciona a otra web o similar. Esto parcialmente se soluciona con librarías que filtran los datos que se guardan que han entrado los usuarios.
  #10 (permalink)  
Antiguo 22/12/2011, 05:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años
Puntos: 1
Respuesta: duda con las consultas seguras a mysql

Hola macaso, gracias por tu aclaracion, mi duda es ahora que si la funcion strip_tags(), seria suficiente para evitar los XXS, ya que esta funcion elimina todas las etiquetas y yo es lo que quiero, pero es fiable? saludos.

Etiquetas: html, mysql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:20.