Si, si no te sabe mal pasame el codigo para evitar SQLinjection 
segun la Wiki el siguiente codigo evitaria que alguien escriviera hay cualquier url externa..:
<?
die('Error. intento de RFI..');
else
include ($url);
?>
Alguien me lo podria confirmar? muchas gracias
Saludos
Para mi que falta un "if..." que debe ser lo importante, porque asi... no se como se va a proteger del RFI...
Te paso el codigo que me pedias:
function limpiain( $variable )
{
// Inicio bloque eliminacion palabras restringidas
$banlist = array
("insert", "select", "update", "delete", "having", "truncate", "replace",
"handler", "procedure", "order by", "group by", "drop", "where");
$variable = trim ( str_replace ( $banlist, '', $variable ) );
//Fin bloque eliminacion palabras restringidas
$rvar = addslashes(trim($variable));
return $rvar;
}
function limpiaout($variable) {
$rvar = stripslashes($variable);
return $rvar;
}
La funcion limpiain elimina las palabras que hay en el array de la funcion, de la variable que pasamos como parametro, y ademas te añade una barra invertida (\) delante de las comillas simples ('), comillas dobles ("), barras invertidas (\). Esos simbolos, como quizas ya sabes, suele ser el metodo mas comun para hacer sql injection.
La otra funcion, limpiaout, solo te quita las barras invertidas (\) que tenga la variable que le pasemos.
El gran problema de la funcion limpiain es que te elimina palabras que al igual queremos usar.
Por ejemplo:
insertar,
insertando, etc y dejaria unicamente "ar", "ando", etc respectivamente.
Lo que yo hago es deshabilitar (comento) el bloque que suprime esas palabras y dejo solo la parte que me añade las barras invertidas. Yo creo que con eso hay mas que suficiente, pero si eres muy paranoico, siempre puedes dejar habilitado dicho bloque quitando o añadiendo palabras al array.
Unos ejemplos:
<?php
//Definir funciones.
/* Lo mejor es ponerlo en otro archivo e incluirlo (con require/include),
ya que seguramente lo emplearas para otras páginas.
*/
function limpiain( $variable )
{
/* $banlist = array
("insert", "select", "update", "delete", "having", "truncate", "replace",
"handler", "procedure", "order by", "group by", "drop", "where");
$variable = trim ( str_replace ( $banlist, '', $variable ) );
*/
$rvar = addslashes(trim($variable));
return $rvar;
}
function limpiaout($variable) {
$rvar = stripslashes($variable);
return $rvar;
}
// Limpiamos unas variables
if (isset($_POST['usuario']) && ($_POST['usuario'] != '')) {
$Pusuario = limpiain($_POST['usuario']);
}
if (isset($_GET['numero']) && ($_GET['numero'] != '') && is_numeric($_GET['numero']) {
$Pnumero = limpiain($_GET['numero']);
}
if (isset($_POST['pass']) && ($_POST['pass'] != '')) {
$Ppass = limpiain($_POST['pass']);
}
// Llamamos a las nuevas variables que ya estan tratadas. Dos ejemplos:
// Si vas a ejecutar sentencias sql, pasa las variables tratadas SIN LIMPIAR.
if ((isset($Pusuario)) && (isset($Ppass)) && (isset($Pnumero))) {
$Consulta = 'SELECT SysUsr.IdUsuario, SysUsr.Password FROM SysUsr WHERE SysUsr.Usuario = "'.$Pusuario.'"';
//Fijate que aqui NO he tratado la variable con limpiaout
}
// Si por el contrario las variables van a ser mostradas en pagina (tanto las procedan de la bdd y hayan sido
// indroducidas con limpiain, como las que se usen directamente en la página), deben ser tratadas con limpiaout:
echo limpiaout($Pusuario);
// o tambien:
if(mysql_num_rows($Consulta)) {
while($salida = mysql_fetch_array($Consulta)) {
echo limpiaout($salida['usuario']);
}
}
?>
Un pequeño resumen:
- Si el campo a tratar va a ser siempre numérico, usa la funcion "is_numeric()"
- Siempre trata todas las variables al principio del script pasando el nuevo valor a una variable nueva. A partir de ese momento, olvidate de la variable que te haya venido de otra pagina ($_GET, etc...) y usa siempre la nueva que hayas creado ($Pusuario, $Pnumero, etc. de los ejemplos que he puesto antes) volviendola a convertir con limpiaout cuando sea necesario (insisto: no uses limpiaout para hacer consultas o meter datos en una bdd, solo trata sus respuestas)
Espero que te haya servido de ayuda, y perdona por el tocho de post, es que cuando me emociono escribiendo...

Saludos,
M