Foros del Web » Programando para Internet » PHP »

como proteger mejor un query

Estas en el tema de como proteger mejor un query en el foro de PHP en Foros del Web. como es mejor protejer una consulta a BD, he leido y buscado bastante, pero no me termino de entenderlo. que es mejor usar esto: Código ...
  #1 (permalink)  
Antiguo 04/03/2008, 16:01
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
como proteger mejor un query

como es mejor protejer una consulta a BD, he leido y buscado bastante, pero no me termino de entenderlo.

que es mejor usar esto:

Código PHP:
function quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}
if(
trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
    
// Puedes utilizar la funcion para eliminar algun caracter en especifico
    
$usuario strtolower(quitar($HTTP_POST_VARS["usuario"]));
    
$password $HTTP_POST_VARS["password"];

            
$result mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\''); 

o esto:


Código PHP:


if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
        
//  puedes convertir  a su entidad HTML aplicable con htmlentities
    
$usuario strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
    
$password $HTTP_POST_VARS["password"];
    
$result mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\''); 
  #2 (permalink)  
Antiguo 05/03/2008, 07:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: como proteger mejor un query

htmlentities no te va a escapar barras, y te va a escapar mucho más de lo que necesitás.
Lo ideal es usar addshashes() o mysql_real_escape_string, te recomiendo ver las páginas del manual correspondientes.

www.php.net/addslashes
www.php.net/mysql_real_escape_string


Saludos.
  #3 (permalink)  
Antiguo 05/03/2008, 07:53
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: como proteger mejor un query

Agrego a lo de avlin que si usas mysql lo mejor es usar mysql_real_escape_string, porque tiene en cuenta todos los reemplazos necesarios para la base de datos mysql.
En general todos los drivers de cualquier base de datos tienen una función específica para hacer esto, y siempre conviene usarla por sobre addslashes.

Saludos.
__________________
programación php
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 19:58.