Quiero evitar inyecciones sql, previamente estaba usando esta funcion que utilizan los foros SMF:
Código:
Luego me dijeron que lo recomendable es usar mysql_real_escape_string, por lo que cambie a esta funcion:<?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); ?>
Código:
Utilice la funcion mysql_escape() para cada post y get.<?php function mysql_escape($cadena) { if(get_magic_quotes_gpc() != 0) { $cadena = stripslashes($cadena); } return mysql_real_escape_string($cadena); } ?>
Mi duda es la siguiente, con el siguiente codigo testeo si es vulnerable a inyecciones sql:
Código:
..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?<? if(!isset($_GET["inyeccion"])){ header("location: ?inyeccion='"); } else { echo 'Tu servidor '; if($_GET["inyeccion"] != "'")echo 'no '; echo 'tiene problemas de inyección'; } ?>
No se si se entendio, espero que si.
Gracias.