Foros del Web » Programando para Internet » Javascript »

evitar inyeccion sql

Estas en el tema de evitar inyeccion sql en el foro de Javascript en Foros del Web. Hola buenas, tengo una sql montada en un where concatenando cada valor que mete en la busqueda el usuario. Hay es donde esta mi problema, ...
  #1 (permalink)  
Antiguo 15/12/2005, 03:32
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
evitar inyeccion sql

Hola buenas, tengo una sql montada en un where concatenando cada valor que mete en la busqueda el usuario.
Hay es donde esta mi problema, como podria hacer para evitar que me meta el usuario una comilla simple y me tire la query????
la query esataria asi strSql="sleect *from usuarios where usu=' and nombre=' ...."

Por ahora con esto:
strWhere = strWhere.replace(/\s+AND\s*$/gi, "");
le quito a la sql si tiene un AND al final, podria usar esa regular expression de alguna forma para que me ponga tb en vez de una comilla simple 2???


gracias
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:

Última edición por Nombela; 15/12/2005 a las 05:09
  #2 (permalink)  
Antiguo 15/12/2005, 10:56
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Ni idea????
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #3 (permalink)  
Antiguo 15/12/2005, 16:12
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
supongo que si, aunque yo no te pueda dar una respuesta.

Lo que si te podría decir es que para evitar sql injection, si o si tenes que filtrarlo del lado del servidor(cualquiera con el conocimiento para realizarlo tambien puede "saltarse" javascript facilmente)
__________________
by Capitán Buscapina
.
  #4 (permalink)  
Antiguo 15/12/2005, 19:18
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Nombela, estás trabajando en .NET no?, si es así entonces haz uso de parámetros en lugar de concatenar los valores y armar tu consulta.

Como dice Cap.Buscapina, de nada te servirá intentar evitar eso usando código de cliente, sabiendo que puede ser fácilmente desactivado.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 16/12/2005, 04:47
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Es que la query la tengo en javascript y no es una validacion de usuario y password sino un formulario de busqueda con muchos campos pero claro si al usuario le da por meter una comilla simple en la busqueda pues casca.

Por eso quiero evitarlo kitando todas las comillas.
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #6 (permalink)  
Antiguo 17/12/2005, 08:50
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años
Puntos: 1
Una ayudita

Un aayudita
__________________
:si: El hombre es el único animal que come sin tener hambre, bebe sin tener sed y habla sin tener nada que decir. :si:
  #7 (permalink)  
Antiguo 17/12/2005, 10:27
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 22 años, 11 meses
Puntos: 25
Hola.

A ver si esto te sirve.
http://es.php.net/manual/es/function.addslashes.php
http://es.php.net/manual/es/function...ecialchars.php
http://www.maestrosdelweb.com/editorial/inyecsql/
  #8 (permalink)  
Antiguo 05/04/2008, 01:02
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Re: evitar inyeccion sql

usa esta funcion para todas las variables externas $_GET $_POST $_COOKIE etc...

Código PHP:

if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

ejemplo de llamando a la funcion:

Código PHP:
$variable=GetSQLValueString($_GET['Id'],"int"); 
  #9 (permalink)  
Antiguo 05/04/2008, 03:07
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: evitar inyeccion sql

El mensaje inicial es de hace más de 2 años. Por favor, no reviváis temas tan antiguos.

Saludos,
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:03.