Foros del Web » Programando para Internet » PHP »

Ubicación de mysql_real_escape_string

Estas en el tema de Ubicación de mysql_real_escape_string en el foro de PHP en Foros del Web. Hola estimados, En qué línea debo agregar mysql_real_escape_string() para protegerme de un posible ataque de SQL Injection?: Yo lo tengo así para una consulta que ...
  #1 (permalink)  
Antiguo 21/12/2010, 14:30
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta Ubicación de mysql_real_escape_string

Hola estimados,

En qué línea debo agregar mysql_real_escape_string() para protegerme de un posible ataque de SQL Injection?:

Yo lo tengo así para una consulta que trae datos de unos GET[]:

......................

$cod1 = $_GET['cod1'];
$cod2 = $_GET['cod2'];
require("conectar.php");

$codigo1 = mysql_real_escape_string($_GET['cod1']);
$codigo2 = mysql_real_escape_string($_GET['cod2']);

$consulta = mysql_query("SELECT * FROM codigos WHERE cod = '$codigo1'");
while($resultado = mysql_fetch_array($consulta))

......................

Está bien la utilización del mysql_real_escape_string?. Me pueden dañar mi sitio?.

Aclaro que sólo lo uso para consulta; las altas, modificaciones y eliminaciones las hago directamente desde phpmyadmin.

Muchas Gracias de antemano!.
  #2 (permalink)  
Antiguo 21/12/2010, 14:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 31
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Ubicación de mysql_real_escape_string

Está bien como lo usas, pero además deberías usar expresiones regulares para verificar que lo que llega tiene el formato que esperas. En el caso de que tus variables que vienen por $_GET deban ser numéricos, solo utiliza:

Código PHP:
intval($_GET['variable']); 
  #3 (permalink)  
Antiguo 21/12/2010, 14:34
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Ubicación de mysql_real_escape_string

Bueno, con los genios se puede esperar de todo, pero deberias cuidar la parte donde ingresas tu usuario y contraseña mas que nada... pero esta bien empleado, si lo que quieres es evitar que intorduzcan el tipico 'OR ='' o cosas asi... de todas formas deberias usar una proteccion contra XSS tambien, con htmlentities.. en internet encontre esto que puede ser util

Código PHP:
function sql_quote($value){
        if(
get_magic_quotes_gpc())
        {
            
$value stripslashes($value);
            }

        if(
function_exists("mysql_real_escape_string"))
        {
            
$value mysql_real_escape_string($value);
            }else{
                
$value htmlentities(addslashes($value));
                }
    return 
$value;
    } 
puedes usarlo asi

Código PHP:
$cod1 $_GET['cod1'];
$cod2 $_GET['cod2'];
require(
"conectar.php");

$codigo1 sql_quote($_GET['cod1']);
$codigo2 sql_quote($_GET['cod2']);

$consulta mysql_query("SELECT * FROM codigos WHERE cod = '$codigo1'");
while(
$resultado mysql_fetch_array($consulta)) 
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: Ninguno
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:53.