Foros del Web » Programando para Internet » PHP »

Función escapeString.

Estas en el tema de Función escapeString. en el foro de PHP en Foros del Web. Hola amigos /as mi problema es el siguiente. Quiero proteger mi página contra ataques por inyección de código SQL y para ello uso la función ...
  #1 (permalink)  
Antiguo 23/05/2012, 18:19
 
Fecha de Ingreso: diciembre-2003
Mensajes: 15
Antigüedad: 20 años, 4 meses
Puntos: 0
Exclamación Función escapeString.

Hola amigos /as mi problema es el siguiente. Quiero proteger mi página contra ataques por inyección de código SQL y para ello uso la función escapeString. ¿Alquien me puede decir porque no me funciona o parentemente queda sin efecto en este código y que debo hacer para solucionarlo muchas gracias....

<?php

function safeQuery($query) {

$db = new SQLite3(dirname(__FILE__) . "/database.db") or die ("Unable to open database");

SQLite3::escapeString($query); # NO ME FUNCIONA.

$result = $db->query($query);
$row = $result->fetchArray();
$db->close();
return $row;
}

function areUserAndPasswordValid($user, $password) {
$query = "SELECT count(*) FROM userTable WHERE username = '$user' AND password = '$password'";
$row = safeQuery($query);
$count = $row[0];
return $count > 0;
}

?>
  #2 (permalink)  
Antiguo 24/05/2012, 00:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Función escapeString.

El problema es que debes escapar campo por campo, no toda la consulta, ejemplo:

Código PHP:
Ver original
  1. $query = "SELECT COUNT(*) FROM userTable";
  2. $query .= " WHERE username='" . safeQuery($user) . "' AND password='" . safeQuery($password) . "'";
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/11/2014, 21:00
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Función escapeString.

Hola vescapam me gustaría conversar contigo

Etiquetas: 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 06:15.