Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2011, 17:16
Hugo114
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Algunas dudas sobre seguridad (sql inyecciones)

Que tal, es mi primer post aca, tengo la siguiente duda.

Quiero evitar inyecciones sql, previamente estaba usando esta funcion que utilizan los foros SMF:
Código:
<?php
function addslashes__recursive($var){
if (!is_array($var))
return addslashes($var);
$new_var = array();
foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return $new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>
Luego me dijeron que lo recomendable es usar mysql_real_escape_string, por lo que cambie a esta funcion:
Código:
<?php
function mysql_escape($cadena) {
    if(get_magic_quotes_gpc() != 0) {
        $cadena = stripslashes($cadena);
    }
    return mysql_real_escape_string($cadena);
}  
?>
Utilice la funcion mysql_escape() para cada post y get.
Mi duda es la siguiente, con el siguiente codigo testeo si es vulnerable a inyecciones sql:
Código:
 <?
if(!isset($_GET["inyeccion"])){
header("location: ?inyeccion='");
} else {
echo 'Tu servidor ';
if($_GET["inyeccion"] != "'")echo 'no ';
echo 'tiene problemas de inyección';
}
?>
..el problema es que con la funcion de los foros SMF me dice que no tiene problemas de inyeccion, en cambio usando mysql_real_escape_string() si tiene problemas. Tengo entendido que no puedo usar ambas funciones ya que harian lo "mismo", entonces como puedo hacer para usar mysql_real_escape_string() y que no sea vulnerable a inyecciones sql?

No se si se entendio, espero que si.
Gracias.